gpt4 book ai didi

android - 放置在布局 XML 中时如何使用 TabItem?

转载 作者:IT老高 更新时间:2023-10-28 22:06:36 24 4
gpt4 key购买 nike

TabLayout documentation给出了将 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 的文档说:

This view is not actually added to TabLayout, it is just a dummy which allows setting of a tab items's text, icon and custom layout.

那么 TabItem 是干什么用的?经过广泛的谷歌搜索,我找不到任何人在 XML 中定义 TabItems 的单个示例。有没有办法在资源文件中使用 TabItem 设置选项卡式 Activity ,如上所示?

最佳答案

这似乎是最近添加到设计库中的,显然是在版本 23.2.0 中添加的,尽管 the revision history 中没有提到它.它的功能非常基本,它似乎使用的唯一属性是其 docs 中给出的三个属性。 : texticonlayout

从测试来看,它似乎基本上是一种用于创建新 Tab 并设置其文本、图标和自定义 View 的 XML 快捷方式,就像通常在代码。当它说“这个 View 实际上并没有添加到 TabLayout”时,我相信这意味着它不是常规意义上的 View,因为你不能设置任何类型的标准布局属性在其上,例如 layout_widthbackground。它只是用来使 TabLayout 为每个 TabItem 创建一个新的 Tab,并调用 setText()setIcon()setCustomView() 相应的。

例如,要在代码中添加 Tab,我们通常会这样做:

TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);

// Add Tab
TabLayout.Tab tab = tabLayout.newTab();

tab.setCustomView(R.layout.tab);
tab.setText("Tab 1");
tab.setIcon(R.drawable.ic_launcher);

tabLayout.addTab(tab);

而现在我们可以通过在布局中添加 TabItem 来替换上面注释之后的所有内容。

<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<android.support.design.widget.TabItem
android:layout="@layout/tab"
android:text="Tab 1"
android:icon="@drawable/ic_launcher" />

</android.support.design.widget.TabLayout>

请注意,自定义 View 布局的相同要求仍然适用。即文本的TextView必须有系统Resource ID @android:id/text1,图标的ImageView必须有ID @android:id/icon。例如,上面的 R.layout.tab:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical">

<ImageView android:id="@android:id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<TextView android:id="@android:id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

</LinearLayout>

关于android - 放置在布局 XML 中时如何使用 TabItem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38034966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com