如何使用android.support.design.widget.TabLayout创建选项卡的自定义布局?

时间:2016-01-20 23:10:45

标签: android

我找到了以下关于如何设置customView的文档。但是,当我将布局中的id更改为" text1"和"图标",setText()setIcon()不起作用。

  

public TabLayout.Tab setCustomView(int layoutResId)

     

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

     

如果膨胀的布局包含ID为TextView的{​​{1}},则会使用text1的值更新。同样,如果此布局包含带有ID图标的setText(CharSequence),则会使用赋予ImageView的值进行更新。

(资料来源:http://developer.android.com/reference/android/support/design/widget/TabLayout.Tab.html#setCustomView(int)

有人能举例说明这是如何运作的吗?

Java代码:

setIcon(Drawable)

布局代码:

    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");

1 个答案:

答案 0 :(得分:5)

您需要使用系统资源标识符。也就是@android:id/text1@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.text1android.R.id.icon