失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Android | ListView RecyclerView 实现一键回到顶部

Android | ListView RecyclerView 实现一键回到顶部

时间:2022-04-16 22:17:50

相关推荐

Android | ListView RecyclerView 实现一键回到顶部

一、ListView

1.定义

/*** 列表视图*/private ListView lvPhotoList;/*** 滑动到顶部按钮*/private FloatingActionButton fabScrollTop;

2.监听器

/*** 列表监听是否显示 滑动到顶部按钮*/private final AbsListView.OnScrollListener lvPhotoListScrollListener = new AbsListView.OnScrollListener() {@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {// 滚动条滚动停止时if (scrollState == SCROLL_STATE_IDLE) {if (lvPhotoList.getFirstVisiblePosition() == 0) {if (fabScrollTop.getVisibility() == View.VISIBLE) {fabScrollTop.setVisibility(View.INVISIBLE); // 设置滑动顶部按钮不可见}} else {if (fabScrollTop.getVisibility() == View.INVISIBLE) {fabScrollTop.setVisibility(View.VISIBLE); // 设置滑动顶部按钮可见}}}}@Overridepublic void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {}};/*** 滑动到顶部*/private final View.OnClickListener fabScrollTopListener = new View.OnClickListener() {@Overridepublic void onClick(View v) {lvPhotoList.smoothScrollToPosition(0);}};

3.设置监听器

lvPhotoList = root.findViewById(R.id.XXXXX);lvPhotoList.setOnScrollListener(lvPhotoListScrollListener);fabScrollTop = root.findViewById(R.id.XXXXX);fabScrollTop.setVisibility(View.INVISIBLE);fabScrollTop.setOnClickListener(fabScrollTopListener);

二、RecyclerView

1.定义

/*** 滑动视图*/private RecyclerView rvPhotoList;/*** 上划顶部按钮*/private FloatingActionButton fabScrollTop;

2.监听器

/*** 列表监听是否显示 滑动到顶部按钮*/private final RecyclerView.OnScrollListener rvPhotoListScrollListener = new RecyclerView.OnScrollListener() {@Overridepublic void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {if (newState == SCROLL_STATE_IDLE) {// 判断第一条item是否可见,如果不可见则显示回顶部按钮if (recyclerView.getLayoutManager().findViewByPosition(0) != null) {if (fabScrollTop.getVisibility() == View.VISIBLE) {fabScrollTop.setVisibility(View.INVISIBLE); // 设置滑动顶部按钮不可见}} else {if (fabScrollTop.getVisibility() == View.INVISIBLE) {fabScrollTop.setVisibility(View.VISIBLE); // 设置滑动顶部按钮可见}}}}};/*** 滑动到顶部*/private final View.OnClickListener fabScrollTopListener = new View.OnClickListener() {@Overridepublic void onClick(View v) {rvPhotoList.smoothScrollToPosition(0);}};

3.设置监听器

rvPhotoList = root.findViewById(R.id.XXXXX);rvPhotoList.addOnScrollListener(rvPhotoListScrollListener);fabScrollTop = root.findViewById(R.id.XXXXX);fabScrollTop.setVisibility(View.INVISIBLE);fabScrollTop.setOnClickListener(fabScrollTopListener);

如果觉得《Android | ListView RecyclerView 实现一键回到顶部》对你有帮助,请点赞、收藏,并留下你的观点哦!

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