59
задан 20 October 2016 в 17:48

2 ответа

Как упомянуто в комментариях, определение значков в 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)
0
ответ дан 1 November 2019 в 11:03

С TabLayout обеспеченный Материальная Библиотека Компонентов можно использовать:

Что-то как:

for (int i=0;i<tabLayout.getTabCount();i++){

   tabLayout.getTabAt(i).setIcon(iconResId);
   tabLayout.getTabAt(i).
        setTabLabelVisibility(TabLayout.TAB_LABEL_VISIBILITY_UNLABELED);
}

enter image description here

0
ответ дан 1 November 2019 в 11:03

Другие вопросы по тегам:

Похожие вопросы: