Как упомянуто в комментариях, определение значков в TabLayout не работает при использовании PagerAdapter. Для тех, которые используют Kotlin, одно обходное решение должно создать дополнительную функцию как это:
fun TabLayout.setupWithViewPagerAndKeepIcons(viewPager : ViewPager?) {
val icons = mutableListOf<Drawable?>()
repeat(tabCount) {
icons.add(getTabAt(it)?.icon)
}
setupWithViewPager(viewPager)
repeat(tabCount) {
getTabAt(it)?.setIcon(icons.get(it))
}
}
Затем в layout.xml добавляют Ваши значки к TabLayout:
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout">
<com.google.android.material.tabs.TabItem
android:icon="@drawable/your_icon"/>
</com.google.android.material.tabs.TabLayout>
Наконец, используйте дополнительную функцию для установки TabLayout с ViewPager.
tab_layout.setupWithViewPagerAndKeepIcons(view_pager)
С TabLayout
обеспеченный Материальная Библиотека Компонентов можно использовать:
setIcon
для определения resourceId setTabLabelVisibility
для установки TAB_LABEL_VISIBILITY_UNLABELED
. Что-то как:
for (int i=0;i<tabLayout.getTabCount();i++){
tabLayout.getTabAt(i).setIcon(iconResId);
tabLayout.getTabAt(i).
setTabLabelVisibility(TabLayout.TAB_LABEL_VISIBILITY_UNLABELED);
}