2019-04-17 recyclerView一键回到顶部

1.滚动监听:设置回到顶部按钮的显示隐藏
binding.recyclerView.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) {
            super.onScrolled(recyclerView, dx, dy);
            //获取RecyclerView当前顶部显示的第一个条目对应的索引
            int position = manager.findFirstVisibleItemPosition();
            //根据索引来获取对应的itemView
            View firstVisiableChildView = manager.findViewByPosition(position);
            //获取当前显示条目的高度
            int itemHeight = firstVisiableChildView.getHeight();
            //获取当前Recyclerview 偏移量
            int flag = (position) * itemHeight - firstVisiableChildView.getTop();
            //注意事项:recyclerView不要设置padding
            if(flag==0)
                binding.ivTop.setVisibility(View.GONE);
            else
                binding.ivTop.setVisibility(View.VISIBLE);
        }
    });

2.设置一键回到顶部按钮的点击事件
@Override
public void goTop() {
binding.recyclerView.post(new Runnable() {
@Override
public void run() {
binding.recyclerView.scrollToPosition(0);
}
});
}

3.item的布局文件:recyclerView的item布局文件最外层一定不要设置margin
android:layout_width="match_parent"
android:layout_height="wrap_content">

    
         

            
    

作者:阳光下的美好_6e13
鏈接:https://www.jianshu.com/p/e3f44b2bb26f
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。

你可能感兴趣的:(2019-04-17 recyclerView一键回到顶部)