2

現在、タブレット (Honeycomb+) でのみサポートされているアプリがあります。アプリの一般的な画面には、ニュース リーダー アプリと同じようにアクティビティに 2 つのフラグメントがあります。フラグメント A をクリックすると、フラグメント B に適切なコンテンツが表示されます。問題は、電話 (Froyo+) でこのアプリをサポートするにはどうすればよいかということです。これは、アクティビティからフラグメントをサポートするのとは正反対です。どんな種類のヘルプ/提案も大歓迎です。

4

2 に答える 2

1

次のようなことをしなければなりません: ここに画像の説明を入力

  • ハンドセット用とタブレット用のレイアウトを作成します。

レイアウト/main.xml:

<LinearLayout
android:id="@+id/handset"
[...]
>
</LinearLayout>

レイアウト-大/sw400dp:

<LinearLayout 
  [...]
  >

    <fragment android:name="com.bla.bla.FirstFragment"
              android:id="@+id/first_fragment"
              [...]
              />

     <fragment android:name="com.bla.bla.SecondFragment"
              android:id="@+id/second_fragment"
              [...]
              />

</LinearLayout>
  • FragmentActivity でこれを確認します。

if (findViewById(R.id.handset) != null) {
    // it's a handset device and you can add a Fragment to this View
    }

 FirstFragment firstFragment = new FirstFragment();
 getSupportFragmentManager().beginTransaction().add(R.id.handset, firstFragment).commit();
  • null を返す場合R.id.handsetはタブレットです。この場合、静的に追加された Fragments は Fragments クラスによって処理されます。
于 2013-01-04T19:37:10.070 に答える
0

電話では、タブレットでフラグメントを更新したクリックごとに、このフラグメントを含む新しいアクティビティが起動されます。

それが多かれ少なかれ唯一のことです: * より少ないフラグメントを 1 つのアクティビティにカプセル化し、多くの場合 1 つのフラグメント * それらの新しいアクティビティをリンクします。

アクティビティは新しい接着剤にすぎず、フラグメントを再利用します。

また、タブレット アプリ内のフラグメント間の通信に注意してください。その一部をアクティビティに移動する必要があります。

于 2013-01-04T19:18:16.077 に答える