0

我正在查看 support v4 包的示例项目,偶然发现了一些奇怪的东西:

R.id.fragment1FragmentNestingTabsSupport.java中设置期间用作mTab​​Host的容器。它不应该是与视图层次结构内的视图相对应的 id 吗?FragmentActivity

我所看到的是它的视图层次结构是由单个FragmentTabHost.

顺便说一句:fragment1 存在于内部fragment_hide_show_support.xml,这是另一个演示的一部分。

4

1 回答 1

2

它不应该是与 FragmentActivity 的视图层次结构中的视图相对应的 id 吗?

不完全的。如果您查看FragmentTabHost该类的源代码,您会发现只有在包含内容的容器不存在时FragmentTabHost才会使用提供的 id 。这在该示例中不会发生,因为调用私有方法的构造函数具有构建布局(包括上述内容容器)文件的任务,如果不包含.FragmentTabHostFragmentTabHostTabWidget

因此,在该示例中,FragmentTabHost不包含TabWidget触发要构建的布局的 a 。拥有这个内置布局意味着提供给该setup()方法的 id 将被忽略。他们还不如简单地调用mTabHost.setup(this, getSupportFragmentManager());.

于 2013-02-14T09:20:41.777 回答