1

フラグメントアダプタ(この場合はタブアダプタ)の使用方法を示すデモコードを見ています。instantiate()この方法が正確に何をするのか知りたいです。このページの次のデモコードで使用されていることがわかります。

http://developer.android.com/reference/android/support/v4/view/ViewPager.html

(クラスgetItem()内のメソッドを参照してください)TabsAdapter

デモコードを正しく読んでいる場合、ユーザーがタブの1つをクリックするたびに、新しいフラグメントが作成されますか?したがって、フラグメントはライフサイクル全体を再び開始します(onAttach()... onCreate()...など)?これはひどく非効率に聞こえます。各タブのコンテンツを表すフラグメントは、(おそらくメソッドで)1回だけインスタンス化してから、が呼び出さaddTab()れたときにフェッチできるコレクションに保存する必要があると思います。getItem()

私がこれのいずれかで間違っているならば、私を訂正してください。フラグメントの管理方法をよりよく理解しようとしています。

4

2 に答える 2

0

私のお金は、setCurrentItem()関数がそのタブに表示されている既存のフラグメントを実際に破壊しないということです。それ以外の場合、アダプタに使用可能なタブのリストがある理由はあまりありません。おそらく、あるタブから別のタブに切り替えるときはsetCurrentItem()、現在アクティブなフラグメントからUIをデタッチして(またはそのonPause()メソッドを呼び出して)、新しく選択したフラグメントのUIを再接続して(またはそのonResume()メソッドを呼び出して)ください。

しかし、疑問がある場合は、ソースを読むことができます:)

お役に立てば幸いです、David

于 2012-02-04T01:33:20.533 に答える
0

私はここで私の質問の説明を見つけることができました

于 2012-02-05T05:37:56.437 に答える