1

Android デベロッパー ガイドによると、

開始するには、タブに関連付けられた各 Fragment を配置する ViewGroup をレイアウトに含める必要があります。タブ交換コードから参照できるように、ViewGroup にリソース ID があることを確認してください。または、タブ コンテンツがアクティビティ レイアウト (アクション バーを除く) を埋める場合、アクティビティにレイアウトはまったく必要ありません (setContentView() を呼び出す必要さえありません)。代わりに、各フラグメントをデフォルトのルート ViewGroup に配置できます。これは、android.R.id.content ID で参照できます (この ID は、以下のサンプル コードでフラグメント トランザクション中に使用されていることがわかります)。

しかし、 がなければsetContentView()、 を呼び出すたびにgetActionBar()null が返されます。にフラグメントをどのように配置するのだろうdefault root ViewGroupか?XML を使用して追加するか、プログラムで追加しますか?

4

2 に答える 2

1

しかし、setContentView() がないと、getActionBar() を呼び出すたびに null が返されます。

どの Android バージョンでそれをテストしましたか? 私の記憶が正しければ、これは 11 および 12 の API レベルで発生しますが、他のバージョンでは機能します。

複雑さを避けるために、コンテンツ ビューを単純なレイアウトに設定し、FrameLayoutそれをフラグメントのコンテナーとして使用する必要があります。Window.FLAG_ACTION_BARコンテンツ ビューなしで使用することもできます。

getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
于 2013-03-04T09:33:36.737 に答える
0

id を持つデフォルトのビューグループにフラグメントを追加できますandroid.R.id.content。これを行うためにを使用してアクティビティをレイアウトする必要はありませんsetContentView()

mFragmentTransaction.add(android.R.id.content, mFragment, mTag);
于 2013-03-04T09:47:23.100 に答える