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