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