A very simple example. I think most people implement a tab in this way. But the tab text is just missing.
Version of design support lib is the latest 24.2.0.
Here is my layout code:
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
app:tabTextColor="@android:color/darker_gray"
app:tabSelectedTextColor="@android:color/white"
android:background="@color/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TabItem
android:text="@string/tab_domain"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<android.support.design.widget.TabItem
android:text="@string/tab_upload"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<android.support.design.widget.TabItem
android:text="@string/tab_download"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
I'm using ButterKnife 8.2.1 to bind view objects. And here is my activity code in onCreate():
final DiagnosePagerAdapter adapter = new DiagnosePagerAdapter(getSupportFragmentManager(),
tabs.getTabCount());
tabs.setupWithViewPager(pager);
pager.setAdapter(adapter);
pager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabs));
And here is my adapter:
class DiagnosePagerAdapter extends FragmentStatePagerAdapter {
int mNumOfTabs;
List<Fragment> fragments = new ArrayList<>();
public DiagnosePagerAdapter(FragmentManager fm, int numberOfTabs) {
super(fm);
this.mNumOfTabs = numberOfTabs;
fragments.add(new DomainFragment());
fragments.add(new UploadFragment());
fragments.add(new DownloadFragment());
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return mNumOfTabs;
}
}
I've seen a similar question here: Using TabLayout inside a Fragment; tab text invisible
Answers in that question said this has been fixed in 23.0.0, and none of the workaround works on my phones, including a Xiaomi HM 2A and a Huawei device.