7

我正在创建一个滑动关闭列表视图适配器。我的基本方法是将列表项的视图包装为 ViewPager 中的第二个视图,并在 ViewPager 的项目更改侦听器中提供必要的回调。经过很多痛苦,我让 View 回收器按预期工作,并实现了 ViewHolder 和 ViewBinder 模式。我什至设法在滚动 ViewPager 时阻止 ListView 接管触摸事件,而不必创建 ListView 的自定义子类(我可以从适配器中完成这一切)。

我遇到麻烦的地方是让选择器和OnItemClickListener工作。在查看 ListView 的源代码后,似乎通过覆盖 ViewPager 的 hasFocusable() 方法以始终返回 false(稍后我将从子视图中提取此值),这些东西应该已经被重新启用。不幸的是,这种情况并非如此。我已经尝试了setDecendantFocusability()解决方法,但我仍然卡住了。

如果可能的话,我想避免扩展 ListView 以提供最大量的模块化。出于类似的原因,我不想将选择器添加到 ViewPager 的背景中(如果开发人员更改了 ListView 的选择器,则不会反映出来)。本质上,我希望使 ListView 和子视图之间的 ViewPager 代码透明。有任何想法吗?

4

1 回答 1

7

您是说您正在使每个列表项成为视图寻呼机,以便您可以实现滑动删除?如果是这样……不,不,这不是视图寻呼机的用途。首先很抱歉,它只是不打算用作列表中的项目。其次是在视图之间切换,而不是滑动删除。

不幸的是,我们没有示例代码来展示如何执行此操作,但您可以查看平台对通知窗格或最近的应用程序的实现以获得一些想法。

于 2011-12-17T23:04:47.357 回答