我找到了下面关于如何设置自定义视图
的留档。但是当我将布局中的id
更改为“text 1”和“icon”时,setText()
和setIcon()
不起作用。
公共TabLayout.TabsetCustomView(int layoutResId)
设置要用于此选项卡的自定义视图。
如果膨胀布局包含ID为ext1
的TextView
,则将更新为setText(CharSequence)
的值。类似地,如果此布局包含带有ID图标的ImageView
,则将更新为setIcon(Drawable)
的值。
(来源:http://developer.android.com/reference/android/support/design/widget/TabLayout.Tab.html#setCustomView(int))
有人能给我举个例子说明这是如何工作的吗?
Java代码:
TabLayout.Tab tabAdd = tabLayout.getTabAt(0);
tabAdd.setCustomView(R.layout.tab_layout_custom_view);
tabAdd.setText("Add");
tabAdd.setIcon(R.mipmap.add_tab).setText("Add");
布局代码:
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/icon"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:id="@+id/text1"
android:gravity="center"
android:layout_below="@+id/icon" />
您需要使用系统资源标识符。即@android: id/text 1
和@android:id/icon
。
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@android:id/icon"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:id="@android:id/text1"
android:gravity="center"
android:layout_below="@android:id/icon" />
如果您需要在代码中引用这些ID,它们将是android.R.id. ext1
和android.R.id.icon
。