4

新しいアプリケーションを開始していて、一連のタブが必要です。各タブ内には複数の画面が必要で、それぞれに独自のバック スタック (クライアントが必要) があります。これが私が意味することの簡単な図です:

Tab 1
   |
   |_Screen1a --> Screen1b --> Screen1c
Tab 2
   |
   |_Screen2a -->Screen2b
Tab 3
   |
   |_Screen3a --> Screen3b --> Screen3c --> Screen3d
...etc

ここで、FragmentActivity をタブ ホスト アクティビティとして使用する前にこれを行いました。各タブは、各 Fragment を収容する FragmentActivity でした。つまり、次のことを意味します。

FragmentActivity
    FragmentActivity1
       |
       |_Fragment1 --> Fragment2 --> Fragment3
    FragmentActivity2
       |
       |_Fragment4 --> Fragment5
    FragmentActivity3
       |
       |_Fragment6 --> Fragment7 --> Fragment8 --> Fragment9
    ...etc

現在、4.2 SDK のリリースとサポート ライブラリの新しいリビジョンでは、ネストされたフラグメントがあります。これにより、別のフラグメント内にフラグメントを配置できます (まだテストしていませんが、ネストを続行できると想定しています)。現在、タブ ホスト アクティビティで非推奨のメソッドを使用しているため、ネストされたフラグメントの使用に切り替えることを考えていました。基本的に、単一のホスト アクティビティを使用して、アプリケーションのフロー全体をフラグメントで実装します。

パフォーマンスの問題やメモリの問題などに関して、これに何か問題はありますか? または、以前に行った実装を使用して、非推奨のメソッドを使用する必要がありますか?

4

1 に答える 1

1

ネストされたフラグメントは問題の解決に役立ちます。この実装を試しました。ただし、TabHost の TabSpec に子アクティビティ (インテント) を追加しないでください。すべての子アクティビティをフラグメントに置き換える必要があります。しかし、私の考えでは、この実装は良くないと思います。Androidには戻るキーがあるため、ナビゲーションは少し有線になります。通常、戻るキーを押すと、ユーザーは前の画面に戻ります。しかし、このタブは戻るナビゲーションを台無しにします。

于 2013-01-24T01:36:08.570 に答える