我使用Array#reduce
在RecyclerView中实现了粘贴标题我想在自定义标题中添加一个可点击的视图,但是当我在
中设置监听器时public void onBindHeaderViewHolder(HeaderHolder viewholderHeader, int position)
它忽略了我,点击后面的项目(recyclelerview列表的背景选择器)。
onBindHeaderViewHolder正在运行,因为我在那里有setText。我想知道一种方法,OnClickListener持续存在,视图接收它。 (如果可能,不进行回收)。
答案 0 :(得分:6)
2016年3月29日的编辑:现在可以使用ViewHolder的相同侦听器点击Sticky Headers,而不再使用ItemDecoration
。而是使用FrameLayout
。
答案:我已经在header-decor和sticky-headers-recyclerview工作,我的结论是, ItemDecoration 不应该是这样的实现一个真正好的粘性标题,因为我们所拥有的只是在顶部绘制的东西而不是一个视图(!)所以我们不能在该东西上附加任何监听器而我们无法与该东西进行交互
但是......我能够在 FlexibleAdapter 项目中拦截 sticky 标题上的点击,现在它已成为一种高级解决方案这个功能。
请在此处查看我的评论:
另一个非常重要的说明:
我在顶部提到的2个项目使用了重循环for
语句:它们作为"装饰"多次在项目的顶部(使用onDrawOver
),当前显示的所有标题。不仅如此,他们还将所有视图和对的位置的引用放入缓存中,而无需回收(!)。
你可以想象,每次列表滚动每个像素时,内存增加多少以及手机的工作量是多少,电池耗尽巨大...嗯......我已经删除了所有这些内容StickyHeaderHelper
。