У меня есть TabLayout
, который я хотел бы настроить следующим образом:
- Если элемент вкладки не выбран, отображается только значок
- Если выбран элемент вкладки, должен отображаться значок и текст
Я реализовал OnTabSelectedListener
и установил текст на null
, когда вкладка не выбрана в качестве выбранной. Когда я запускаю текст на «невыбранной» вкладке, она удаляется, но вкладка остается в активном состоянии, как показано на этом рисунке:
Код:
tabs.addOnTabSelectedListener(object: TabLayout.OnTabSelectedListener{
override fun onTabReselected(p0: TabLayout.Tab?) {
}
override fun onTabUnselected(tab: TabLayout.Tab?) {
// If I remove this the problem is resolved.
tab?.text = null
}
override fun onTabSelected(tab: TabLayout.Tab?) {
tab?.text = "Selected"
}
})
XML
<com.google.android.material.tabs.TabLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabInlineLabel="true"
app:tabMode="scrollable"
app:tabGravity="fill">
<com.google.android.material.tabs.TabItem
style="@style/Widget.MaterialComponents.TabLayout.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@drawable/ic_attach_money_black_24dp"
android:text="Selected" />
<com.google.android.material.tabs.TabItem
style="@style/Widget.MaterialComponents.TabLayout.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@drawable/ic_attach_money_black_24dp" />
<com.google.android.material.tabs.TabItem
style="@style/Widget.MaterialComponents.TabLayout.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@drawable/ic_attach_money_black_24dp"
/>
<com.google.android.material.tabs.TabItem
style="@style/Widget.MaterialComponents.TabLayout.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@drawable/ic_attach_money_black_24dp" />
<com.google.android.material.tabs.TabItem
style="@style/Widget.MaterialComponents.TabLayout.Colored"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@drawable/ic_attach_money_black_24dp"
/>
</com.google.android.material.tabs.TabLayout>
Я попробовал все, что в моих силах, чтобы найти решение, но безрезультатно.