2016-12-07 136 views
0

我的recyclerview應該打開關閉的第一個項目。爲此,我寫了這些文字。Recyclerview完全滾動到位置

LinearLayoutManager llm = new LinearLayoutManager(getActivity()); 
llm.scrollToPosition(1); 
paletteRecyclerView.setLayoutManager(llm); 

我想檢查是否可以完全滾動到位置1。如果我的回收視圖很小,我必須打開它而不關閉第一個項目。我如何檢查它?

+0

檢查'recyclerView.getHeight()> recyclerView.computeVerticalScrollRange',如果這是真的,那麼不滾動到位置1 –

+0

我檢查了這兩個參數,返回0有什麼可以是這個原因? – Butterfly

回答

0

我假設你想知道是否有物品在RecyclerView滾動。因此,在將適配器設置爲recyclerView後,您可以按照以下方式進行檢查。

recyclerView.post(new Runnable() { 
     @Override 
     public void run() { 
      int recyclerViewheight = recyclerView.getHeight(); 
      int totalChildViewsHeight = recyclerView.computeVerticalScrollRange(); 
      if (recyclerViewheight > totalChildViewsHeight) { 
       //there is no scroll (there are no more items to scroll) 
      } else { 
       //there is scroll (there are items to scroll) 
      } 
     } 
    }); 
+0

我檢查了這兩個返回0的參數。可能是什麼原因? – Butterfly

+0

你在'recyclerView.post()'上做了它,並在設置適配器後? –

+0

不,爲什麼我必須做recyclerView.post()? – Butterfly

0

嘗試用下面的代碼...

LinearLayoutManager llm = new LinearLayoutManager(getActivity()); 
recyclerView.setLayoutManager(llm); 

RecyclerView.Adapter adapter = new YourAdapter(); 
recyclerView.setAdapter(adapter); 

recyclerView.scrollToPosition(position);