Я использую TabLayout
для навигации с вкладками в своем приложении.
У меня есть очень странная проблема, я создал 4 вкладки, используя этот код:
private int[] tabIcons = {R.drawable.navigation_timeline_icon_selector, R.drawable.navigation_feed_icon_selector,
R.drawable.navigation_messages_icon_selector, R.drawable.navigation_notification_icon_selector};
TabLayout tabLayout = setTabLayout();
if (tabLayout != null) {
for (int i = 0; i < 4; i++) {
tabLayout.getTabAt(i).setIcon(tabIcons[i]);
}
}
каждый из элементов в tabIcon является selector
с выбранными и невыбранными состояниями. Все переключатели значков настроены следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/navigation_timeline_selected_icon" android:state_selected="true"/>
<item android:drawable="@drawable/navigation_timeline_selected_icon" android:state_pressed="true"/>
<item android:drawable="@drawable/navigation_timeline_icon" />
</selector>
Проблема заключается в том, что при запуске приложения первая выбранная вкладка (индекс 0) не использует значок выбранного состояния. Вместо этого он использует не выбранное состояние.
Чтобы пояснить ниже, это скриншот проблемы, при первом запуске моя вкладка выглядит следующим образом:
когда это должно быть примерно так:
После того, как я изменил страницу, все значки вернутся к полной функциональности, и выбранные состояния будут правильно выбраны.
Я попытался использовать метод TabLayout.Tab select()
, но результат тот же, что иконка, которая используется, - это не выбранный значок.
Кто-нибудь знает, что я могу сделать, чтобы исправить это?
Спасибо заранее.