5

最近、アプリケーションを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コードをいじくりまわすことができてうれしいです。

4

1 に答える 1

0

メソッドonPageSelected extendsを実装できますOnPageChangeListener。おそらく、あなたはすでにこれを行っています。そこから、アダプターを現在の ListView に設定するか、その場合はcursorAdapterを再クエリできます。使用する Adapter は Filterable インターフェースを実装する必要があることに注意してください。

于 2012-01-24T11:59:26.327 に答える