Android关于ListView滑动相关

    xiaoxiao2021-04-12  36

    做公司项目,首页用的listview显示很多商品.产品的希望在用户滑动后有一个按钮能让列表回到顶部.

    查阅了相关资料后,成功实现.

    代码如下:

    //为listview设置滚动监听 getListView().setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if(firstVisibleItem > 0) { ViewCompat.animate(viewButton).translationY(10).alpha(1).setDuration(200); viewButton.setVisibility(View.VISIBLE); }else ViewCompat.animate(viewButton).translationY(60).alpha(0).setDuration(200); } }); 关于listView的onScrollListener我就不多说啦,小伙伴们随便就能查到.

    我是根据firstVisibleItem这个字段判断的,这个字段表示的listView当前显示出来的第一个item处于总数据的第几位.

    很明显,如果不是第0位,肯定是列表滑动了,那么就通过动画让按钮出现.

    按钮给监听让列表回到头部:

    viewButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getListView().smoothScrollToPosition(0); } }); 回到头部后就会触发else里的代码, 将按钮隐藏.

    不过有一点小瑕疵,就是按钮消失需要一点时间,这个时候你要是点击按钮所在的位置,列表是没有反应的,不过无伤大雅,反正就不到1s而已.

    如有错误,欢迎指正.

    谢谢!

    转载请注明原文地址: https://ju.6miu.com/read-667723.html

    最新回复(0)