我最近将我的应用程序从使用 Activites 和 TabHost 转换为使用 Android Compat Library for API v4 中的 Fragments 和 ViewPager 我能够修复/解决大多数问题,但无法通过使用该setTextFilterEnabled
方法在 ListViews 中过滤文本来保留以前的行为。
我的ViewPagerAdapter
包含片段,每个片段都有一个ListView
. 当用户在 中滑动时ViewPager
,我希望当前活动的 Fragment 的 ListView 在用户键入时过滤文本,就像我能够使用 TabHost-Activity 模型一样。目前,看起来第一个 Fragment 的 ListView 会正确响应,但如果我滑动到下一个 Fragment 并尝试过滤其 ListView,过滤仍将适用于第一个。如果我扫过前两个然后过滤,结果是不确定的。当前活动的 Fragment 永远不会应用过滤器。有时相邻的片段会,有时不会。
我试图通过添加自定义回调来解决这个问题,这些回调让我可以监控哪些 Fragment 当前可见,哪些是隐藏的。当一个片段作为 ViewPager 的主要片段可见时,我将setTextFilterEnabled
其 ListView 上的 设置为true
,并将所有其他片段设置为false
。这似乎根本没有帮助(我验证我正在正确切换标志以获取正确的片段)。
我怀疑这需要与 ViewPager 进行某种更深入的集成,但我无法真正弄清楚我需要连接什么。关于如何完成这项工作的任何想法?如果需要,我很乐意使用 ACL 代码。