0

ここに画像の説明を入力

画像を表示するために、各タブに ViewPager を追加しようとしています。起動時の最初のタブでは、すべて問題ありません。フラグメントは、カスタム FragmentStatePagerAdapter を使用してフェッチされています。CreateTabContent メソッドで新しい ViewPager オブジェクトをインスタンス化しています。

最初のタブの内容が表示された後、タブ 2 をクリックすると問題が発生します。新しい ViewPager オブジェクトに新しい FragmentStatePagerAdapter オブジェクトを設定しました。ここでも、getCount、getItem、getItemPosition などのすべてのメソッドが適切に実行されますが、オブジェクトは ViewPager にアタッチされません。

Hierarchviewer を確認したところ、NoSaveStateFrameLayout オブジェクトが作成されていないことがわかりました。

ありがとう。

注: notifyDataSetChanged を実装しました。

問題が発生する

4

1 に答える 1

1

私は解決策を見つけました。もう一度、hierarchyviewerを注意深く確認したところ、次のタブでViewPagerにアタッチする必要があるNoSaveStateFrameLayoutオブジェクトが最初のViewPagerにアタッチされていることがわかりました。したがって、次のコードを使用して次のタブがクリックされたときに、タブ1のViewPagerをデタッチしました。

FrameLayout frameLayout  = mTabHost.getTabContentView();
frameLayout.removeViewAt(index);

現在、ViewPagerオブジェクトは1つしか存在せず、すべてが正常に機能しています。

于 2012-05-16T13:00:46.167 に答える