[CymChad/BaseRecyclerViewAdapterHelper]添加了多个HeaderView、FooterView疑问

2024-08-20 186 views
8

添加了多个HeaderView、FooterView会影响性能吗?HeaderView、FooterView会复用吗?怎么定位某个HeaderView、FooterView?怎样监听是否滑到了某个HeaderView、FooterView、 item?

回答

1

如果headerView或footerView有多个重复的话建议分类型多布局实现 header、footer都是添加到线性布局里,可以获取header、footer在headerLayout或footerLayout中的位置,LayoutManager有scrollToPositionWithOffset方法,可以设置偏移量

4

怎样获取header、footer在headerLayout或footerLayout中的位置啊? @ @1109993488 ?

7

` LinearLayout headerLayout = adapter.getHeaderLayout();//获取所有HeaderView的RootView int i = headerLayout.indexOfChild(aHeader);//获取aHeader在RootView的位置 linearLayoutManager.scrollToPositionWithOffset(i,0);//滚动到aHeader?无效,没有效果啊?

4

调用header或footer的getTop获取在父控件中的位置

1

scrollToPositionWithOffset第二个参数填入偏移量

0

能列举详细的代码吗?我试了还是不行啊?

1
LinearLayoutManager manager = (LinearLayoutManager) mRecyclerView.getLayoutManager();
View headerView = mAdapter.getHeaderLayout().getChildAt(3);
final int offset = -headerView.getTop();
manager.scrollToPositionWithOffset(0, offset);
6

@@感谢大神,多个头部,定位解决了,还想请教一下,如何在RecyclerView中监听当前屏幕滑动到了哪一个item? @1109993488