1

ActivityGroup から先に進む適切な方法が見つからないようです。Fragmentsを使用してAndroidのタブごとに個別のバックスタックを見てきました

次のようにします。

  • 4 つのタブを持つアプリケーション
  • 各タブには独自のバックスタックが必要です (iOS の動作と同様です)。
  • アプリケーションはタブレット用に調整されている可能性があるため、バックスタックはアクティビティを保持する必要があります

タブレット向けの開発が必要になると、アクティビティには複数のフラグメントが含まれます。Fragments はネストできないため、Fragments のスタックは機能しません。そのため、スタックにはアクティビティが含まれている必要があります。

ActivityGroup を使い続ける以外に、これを回避する方法が見つからないようです。

ありがとう!

編集1: 具体例。

ハンドヘルド:

 TAB 1 -> Activity 1A (Fragment 1A) 
       -> Activity 1B (Fragment 1B)  
       -> Activity 1C (Fragment 1C)

タブレット:

 TAB 1 -> Activity 1A (Fragment 1A and 1B)
       -> Activity 1C (Fragment 1C)

@beyerss FragmentTransactions に一貫して依存できるとは思いません。あなたが言及したように、トランザクションに複数のフラグメントを追加できますが、アクティビティのレイアウトは一貫していない可能性があります。したがって、私はまだActivityGroupsの必要性を見ています。

4

1 に答える 1

1

バックスタックに追加できるFragmentTransactionを使用できない理由はありますか?画面に3つのフラグメントがあり、それらがすべて同時に変更される場合、これには3つのFragmentTransactionsが必要ですが、フラグメントはネストされないため、機能するはずです。

各タブに独自のバックスタックを持たせるには、タブごとに自分でタブを管理することについて賢明である必要があるかもしれません。つまり、バックスタックに配置された各FragmentTransactionの配列を使用し、ユーザーがタブを切り替えた場合は、保存されていたすべてのFragmentTransactionsを削除します(ただし、それらを追跡します)。その後、ユーザーがタブに戻ったときに、それらを背面に追加します。同じ順序でスタックします。

于 2012-06-26T19:13:22.087 に答える