提问者:小点点

如何使用android.support.design. widget.TabLayout创建标签的自定义布局?


我找到了下面关于如何设置自定义视图的留档。但是当我将布局中的id更改为“text 1”和“icon”时,setText()setIcon()不起作用。

公共TabLayout.TabsetCustomView(int layoutResId)

设置要用于此选项卡的自定义视图。

如果膨胀布局包含ID为ext1TextView,则将更新为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" />

共1个答案

匿名用户

您需要使用系统资源标识符。即@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. ext1android.R.id.icon