这就是我的做法,我有一个要求,我需要每次都为标签标题设置一些计数。
我为标签标题使用了自定义布局。这是我的 custom_tab 布局
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/colorAccent"
android:textSize="@dimen/tab_label" />
第一次设置标题我使用我的方法setupTabTitle("TAB 1",0);
private void setupTabTitle(String title,int pos) {
TextView title = (TextView) LayoutInflater.from(this).
inflate(R.layout.custom_tab, null);
title .setText(title);
// set icon
// title .setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.ic_tab_favourite, 0, 0);
tabLayout.getTabAt(pos).setCustomView(title);
}
下次我使用 tabLayout.getTabAt() 对象时更新标签标题
public void updateCustomTabTitle(String title,int pos) {
TextView tabTitle = (TextView) tabLayout.getTabAt(pos).getCustomView();
tabTitle.setText(title);
}
这就是我调用 updateCustomTabTitle 方法的方式
updateCustomTabTitle("My tab title to update",tabLayout.getSelectedTabPosition());
获取选项卡标题值
public String getCustomTabTitle(int pos) {
TextView tabOne= (TextView) tabLayout.getTabAt(pos).getCustomView();
return tabOne.getText().toString();
}
注意:首先我尝试了 setupTabTitle 方法来更新选项卡标题,但它不更新标题,它在标题末尾附加了新文本。所以我从选项卡布局中获取视图并使用它来更新和读取选项卡值。
希望这会帮助你。