Nat*_*Fig 27 android android-layout android-tabs android-tablayout
该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>
Run Code Online (Sandbox Code Playgroud)
但它没有给出如何在实践中使用它的例子,TabItem的文档说:
此视图实际上并未添加到TabLayout,它只是一个虚拟对象,允许设置选项卡项的文本,图标和自定义布局.
那是TabItem为了什么?经过广泛的谷歌搜索后,我找不到任何人在XML中定义TabItems的例子.有没有办法在资源文件中使用TabItem设置选项卡式活动,如上所示?
Mik*_* M. 36
这似乎是对设计库的一个相对较新的补充,显然是在版本23.2.0中添加的,尽管修订历史中没有提到它.它的功能是非常基本的,唯一的属性似乎是使用三个在其给定的文档:text,icon,和layout.
从测试开始,它似乎基本上是一个XML快捷方式,用于创建新的Tab,并设置其文本,图标和自定义View,就像通常在代码中一样.当它说"这个视图实际上没有添加到TabLayout"时,我认为这意味着它不是View常规意义上的,因为你不能在它上面设置任何类型的标准布局属性,比如layout_width或background.它只是用来使TabLayout创建一个新的Tab每一个TabItem,并调用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);
Run Code Online (Sandbox Code Playgroud)
而现在我们可以通过TabItem在布局中添加a来替换上述注释之后的所有内容.
<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>
Run Code Online (Sandbox Code Playgroud)
请注意,自定义View布局的相同要求仍然适用.也就是说,TextView文本必须具有系统资源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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26650 次 |
| 最近记录: |