RecyclerView 滑动显示返回按钮,点击返回到顶部
生活随笔
收集整理的這篇文章主要介紹了
RecyclerView 滑动显示返回按钮,点击返回到顶部
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
底部有demo 地址***************************
需要提前知道一些只是
RecyclerView.SCROLL_STATE_IDLE 是RecyclerView 滑動停止狀態
findFirstVisibleItemPosition 可見界面第一個item 的position
smoothScrollToPosition(0) 滑動到頂部
下面看下代碼
public class RecyActivity extends AppCompatActivity{private RecyclerView recyclerView;RecyclerViewAdapter adapter;List<String> list = new ArrayList<>();private TextView back_txt;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.recy_activity_layout);back_txt = findViewById(R.id.back_txt);recyclerView = findViewById(R.id.recy);for (int i=0;i<30;i++){list.add("");}recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));adapter = new RecyclerViewAdapter(this,R.layout.recy_item_layout,list);recyclerView.setAdapter(adapter);recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {@Overridepublic void onScrollStateChanged(@NonNull final RecyclerView recyclerView, int newState) {super.onScrollStateChanged(recyclerView, newState);//獲得recyclerView的線性布局管理器LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();int firstVisibleItemPosition = manager.findFirstVisibleItemPosition();Log.i("------first", String.valueOf(firstVisibleItemPosition));//判斷不滑動的情況if (newState ==RecyclerView.SCROLL_STATE_IDLE){// 判斷是否滾動超過一屏if (firstVisibleItemPosition ==0){ //沒有超過一屏幕//這里隱藏是為了滑動之后顯示了,在手動滑動到首頁了,就隱藏back_txt.setVisibility(View.GONE);}else{back_txt.setVisibility(View.VISIBLE);back_txt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {recyclerView.smoothScrollToPosition(0);
// recyclerView.scrollToPosition(0);back_txt.setVisibility(View.GONE);}});}}}});}
}
?
demo 參考地址
總結
以上是生活随笔為你收集整理的RecyclerView 滑动显示返回按钮,点击返回到顶部的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个三字qq网名女生
- 下一篇: 2个RecyclerView 联动