600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > RecyclerView 滑动显示返回按钮 点击返回到顶部

RecyclerView 滑动显示返回按钮 点击返回到顶部

时间:2023-03-08 12:25:21

相关推荐

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 参考地址

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。