最近、アプリケーションをActivitesとTabHostの使用からAndroid Compat Library for API v4のFragmentsとViewPagerの使用に変換しました。ほとんどの問題を修正/解決できましたが、setTextFilterEnabled
メソッドを使用してListViewsのテキストをフィルタリングすることで以前の動作を維持できません。
MyViewPagerAdapter
には、それぞれに。があるフラグメントが含まれていListView
ます。ユーザーがをスワイプするViewPager
と、TabHost-Activityモデルで実行できたのと同じように、現在アクティブなFragmentのListViewでユーザーの入力に応じてテキストをフィルタリングできます。現在、最初のフラグメントのListViewは正しく応答するように見えますが、次のフラグメントにスワイプしてそのListViewをフィルタリングしようとすると、フィルタリングは最初のフラグメントに引き続き適用されます。最初の2つを超えてスワイプしてからフィルター処理すると、結果は決定論的ではありません。現在アクティブなフラグメントは、フィルターを適用しません。隣接するフラグメントがそうなることもあれば、そうでないこともあります。
現在表示されているフラグメントと非表示になっているフラグメントを監視できるカスタムコールバックを追加して、これを修正しようとしました。フラグメントがViewPagerのメインフラグメントとして表示されるようになったら、setTextFilterEnabled
そのListViewでをtrue
に設定し、他のすべてをに設定しfalse
ます。これはまったく役に立たなかったようです(正しいフラグメントのフラグを正しく切り替えていることを確認しました)。
これにはViewPagerとのより深い統合が必要だと思いますが、何を接続する必要があるのか本当にわかりません。これを機能させる方法について何かアイデアはありますか?必要に応じて、ACLコードをいじくりまわすことができてうれしいです。