1

私は最後のプロジェクトでTabActivityに取り組み、すべての状態を管理しましたが、現在TabActivityは廃止されているため、android.support.v4ライブラリを使用してタブでFragmentとFrameActivityを使用して、Androidの下位バージョンをサポートすることにしました。

Fragment のドキュメントと "FragmentBasics" サンプル ( Fragmentsを使用した動的 UI の構築) と "Support4Demos" sdk-sample を学習しましたが、タブの状態の管理に問題があります。

ランチャー アクティビティ MainActivity が 1 つあり、FragmentTabHost を使用して 5 つのタブを追加し、特定の FragmentActivity ごとに 5 つのフラグメント (つまり、f1、f2、f3、f4、f5) を追加しました。最初は tab1 を currentTab として設定しました。

ここに画像の説明を入力

ここで、Support4Demos(FragmentTabs.java) で指定されているのと同じように、インターフェイスを使用して Fragment を 6 番目の Fragment (f6) に置き換える NewPage をクリックします。

ここに画像の説明を入力

次に、2 番目のタブをクリックすると、MainActivity の 2 番目のタブに設定した 2 番目の Fragment(f2) が表示されますが、重なっていて、f6 が f2 と重なっています。

ここに画像の説明を入力

次に、タブ1をもう一度クリックしてf2を表示し、戻るボタンをクリックしてアプリケーションがクラッシュしました。

戻るボタンで getSupportFragmentManager().popBackstack(); を設定します。

TAB2に移動せずにバックプレスをクリックすると、正常に動作します。

4

0 に答える 0