0

サポートv4パッケージのサンプルプロジェクトを確認していて、何か奇妙なことに遭遇しました。

R.id.fragment1は、 FragmentNestingTabsSupport.javaでのセットアップ中にmTabHostのコンテナーとして使用されます。のビュー階層内にあるビューに対応するIDではないでしょうか。FragmentActivity

私が見るのは、そのビュー階層が単一ので構成されていることだけFragmentTabHostです。

ところで:fragment1はfragment_hide_show_support.xml、別のデモの一部である内部に存在します。

4

1 に答える 1

2

FragmentActivityのビュー階層内にあるビューに対応するIDではありませんか?

完全ではありません。クラスのソースコードを見ると、コンテンツを保持するコンテナがまだ存在しない場合にのみ、提供されたIDが使用されるFragmentTabHostことがわかります。にが含まれていない場合、レイアウト(上記のコンテンツコンテナを含む)ファイルを構築するタスクを持つプライベートメソッドを呼び出すコンストラクターとして、このサンプルではこれは発生しません。FragmentTabHostFragmentTabHostFragmentTabHostTabWidget

したがって、そのサンプルには、レイアウトの構築をトリガーするaがFragmentTabHost含まれていません。TabWidgetこのビルドされたレイアウトがあるということは、setup()メソッドに提供されたIDが無視されることを意味します。単にと呼ぶ方がよいでしょうmTabHost.setup(this, getSupportFragmentManager());

于 2013-02-14T09:20:41.777 に答える