TabLayout
文档 给出了嵌套 TabItem
直接在 TabLayout
中的示例,如下所示:
<android.support.design.widget.TabLayout
android:layout_height="wrap_content"
android:layout_width="match_parent">
<android.support.design.widget.TabItem
android:text="@string/tab_text"/>
<android.support.design.widget.TabItem
android:icon="@drawable/ic_android"/>
</android.support.design.widget.TabLayout>
但它没有给出如何在实践中使用它的示例,TabItem 的文档说:
这个视图实际上并没有添加到 TabLayout,它只是一个允许设置选项卡项的文本、图标和自定义布局的虚拟对象。
那么 TabItem
是做什么用的?经过广泛的谷歌搜索后,我找不到一个任何人在 XML 中定义 TabItems 的例子。有什么方法可以使用资源文件中的 TabItem 设置选项卡式活动,如上所示?
原文由 Nathan Fig 发布,翻译遵循 CC BY-SA 4.0 许可协议
这似乎是设计库中相对较新的添加,显然是在版本 23.2.0 中添加的,但在 修订历史 中未提及。它的功能非常基本,它似乎使用的唯一属性是其 文档 中给出的三个属性:
text
,icon
和layout
从测试来看,它似乎基本上是用于创建新的
Tab
并设置其文本、图标和自定义View
的 XML 快捷方式,就像通常在代码中所做的那样。当它说“此视图实际上并未添加到 TabLayout”时,我相信这意味着它不是常规意义上的View
,因为您不能在上面设置任何类型的标准布局属性它,比如layout_width
或background
。 It simply serves to cause theTabLayout
to create a newTab
for eachTabItem
, and callsetText()
,setIcon()
和setCustomView()
相应地。例如,要在代码中添加一个
Tab
,我们通常会这样做:而现在我们可以通过在布局中添加
TabItem
来替换上面注释之后的所有内容。请注意,自定义
View
布局的相同要求仍然适用。 That is, theTextView
for the text must have the system Resource ID@android:id/text1
, and theImageView
for the icon must have the ID@android:id/icon
。例如,上面的R.layout.tab
: