有两种方法!大家可以根据自己的情况做!下面说下步骤!
1、首先添加recyclerview的监听来
recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
//dosomething
}
});
2、在onScrolled方法里面添加所做的操作!以LinearLayoutManager为例!
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false);//创建布局管理者
recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
//在此做处理
if (null != linearLayoutManager) {
//当前条目索引
int position = gridLayoutManager.findFirstVisibleItemPosition();
****方法1:根据索引来做显示隐藏判断****
//根据当前条目索引做判断处理。例如:如果在索引是0,
隐藏显示某个布局,索引大于0显示出来
if (position > 0) {
//做显示布局操作
view.setVisibility(View.VISIBLE);
} else {
//做隐藏布局操作
view.setVisibility(View.GONE);
}
****方法2:根据view的高度来做显示隐藏判断 ****
//根据索引来获取对应的itemView
View firstVisiableChildView = linearLayoutManager
.findViewByPosition(position);
//获取当前显示条目的高度
int itemHeight = firstVisiableChildView.getHeight();
//获取当前Recyclerview 偏移量
int flag = (position) * itemHeight - firstVisiableChildView.getTop();
if (flag >= itemHeight) {
//做显示布局操作
view.setVisibility(View.VISIBLE);
} else {
//做隐藏布局操作
view.setVisibility(View.GONE);
}
}
}
});
补充提示(有些操作可以根据第一个item的view或最后一个item的view距离顶部或者底部的距离来做处理)
View view = gridLayoutManager.findViewByPosition(0);//gridLayoutManager布局管理器
if(null!=view){
view.getBottom();
}
注释都写了!哈哈哈!希望对大家有帮助!有问题可加Q询问!
463263900