2017-07-27 114 views
0

我提出這是由recyclerView的應用,我已經成功地實現了它,現在我 想要的是,如果我把一個按鈕工具欄上的滾動回到在recycleView項目的頂部,當我點擊該按鈕,我RecyclerView滾到頂級項目第一項這是目前在我的recycleView名單,我已經研究了很多問題,但沒有發現任何有用的解決方案對我的問題。請幫助滾動RecycleView在按鈕Android的頂部位置單擊

我正在使用Android Studio。

和RecyclerView也逆轉使用

layout.setReverseLayout(true) 
layout.setStackFromEnd(true); 

,這樣,如果一個新的職位來它 將在頂部顯示,而不是底部

回答

0

試試這個

mRecyclerView.getLayoutManager().scrollToPosition(pos); 

其中pos是將recycleView滾動到top set pos = 0的位置。

+0

我都試過,但我的名單是相反的它帶我到列表的底部 –

0

您應該使用.smoothScrollToPosition平滑地滾動到所需的位置。

如果您的問題是您希望滾動位置位於列表的新視圖的實際頂部。你應該創建一個使用自定義LinearSmoothScroller它覆蓋了自定義LinearLayoutManager:override fun getVerticalSnapPreference(): Int = SNAP_TO_START

當你這樣做覆蓋.smoothScrollToPosition使用這一新的自定義平滑滾動

0

下面的代碼將首先檢查視圖是否滾動或不會,並且會相應地改變按鈕的可見性:

MyRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { 
    @Override 
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) { 
     super.onScrollStateChanged(recyclerView, newState); 
    } 

    @Override 
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
     int visibility = (MyLayoutManager.findFirstCompletelyVisibleItemPosition() != 0) ? View.VISIBLE : View.GONE; 
     btn.setVisibility(visibility); 
    } 
});