【发布时间】:2019-04-24 13:47:56
【问题描述】:
目前我有一个回收器视图,其中一个部分内具有匹配父宽度和网格布局。因此,我为父布局设置了单击侦听器,并为列表项设置了单击时会给出不同反应的列表项。问题是列表并不总是满的,当它未满时,我无法点击回收者视图的空白区域,因为它被回收者视图阻止了。
我已经尝试将点击监听器设置为回收器视图本身,但没有运气。我也无法将布局参数更改为包装内容,因为它必须匹配父级才能与网格布局一起放置。
实际上我对此有一个肮脏的解决方案,在 getItemCount 上,我会将计数硬编码为最大网格列大小,并创建一个空的布局视图类型。在 onBindViewholder 中,我可以验证当前列位置是否大于实际列表大小,我只需布置可以设置点击侦听器的空布局视图。我只是在想也许有一个更清洁的解决方案。
【问题讨论】:
-
可以设置itemView.setOnClickListner来区分点击
-
是的先生,实际上我已经想到了,但是 getItemCount() 本身应该返回列表中项目的实际计数。要在这种情况下在 itemView 上实现单击侦听器,我必须重写 getItemCount() 返回最大列的数量,并创建空布局作为第二种类型的视图。我是否正确理解了您的建议?
-
如果可能请分享 XML 或查看层次图;是 RecyclerView 里面的 GridLayout 还是 RecyclerView 包裹在 RecyclerView 里面。
-
抱歉,已编辑问题
-
所以你也想为其子布局启用点击事件?我做过这种概念。
标签: android android-recyclerview