我正在创建一个滑动删除列表视图适配器。 我的基本方法是将列表项的视图包装为ViewPager中的第二个视图,并在ViewPager的项目更改监听器中提供必要的回调。 经过很多痛苦,我已经让视图回收工作正常,同时实现了ViewHolder和ViewBinder模式。 我甚至设法使ListView在ViewPager被滚动时不占用触摸事件,而无需创建自定义子类(我可以从Adapter中完成所有操作)。
我遇到的问题是选择器和OnItemClickListener无法正常工作。 查看ListView的源代码后,似乎通过覆盖ViewPager的hasFocusable()方法始终返回false(稍后我将从子视图中获取此值),应该重新启用这些内容。 不幸的是,情况并非如此。 我尝试了setDecendantFocusability()解决方法,但仍然卡住了。
如果可能的话,我想避免扩展ListView,以提供最大程度的可重用性。 出于类似的原因,我不想将选择器添加到ViewPager的背景中(如果开发人员更改ListView的选择器,则不会反映这一点)。 本质上,我希望在ListView和子View之间使ViewPager代码透明化。 有任何想法吗?
我遇到的问题是选择器和OnItemClickListener无法正常工作。 查看ListView的源代码后,似乎通过覆盖ViewPager的hasFocusable()方法始终返回false(稍后我将从子视图中获取此值),应该重新启用这些内容。 不幸的是,情况并非如此。 我尝试了setDecendantFocusability()解决方法,但仍然卡住了。
如果可能的话,我想避免扩展ListView,以提供最大程度的可重用性。 出于类似的原因,我不想将选择器添加到ViewPager的背景中(如果开发人员更改ListView的选择器,则不会反映这一点)。 本质上,我希望在ListView和子View之间使ViewPager代码透明化。 有任何想法吗?
TouchListView
提供了将项目拖到一侧以移除它们的功能。 从这样的东西开始比尝试对ViewPager
进行修改更好。 - CommonsWare