我在我的应用程序中使用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中的每个项目都是具有选定和非选定状态的选择器
。 所有图标选择器的配置如下:
<?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)不使用选定状态图标。它使用未选定状态的图标。为了更加说明这个问题,这里附上一张屏幕截图:在第一次启动时,我的选项卡看起来是这样的:
![enter image description here](https://istack.dev59.com/pr59y.webp)
![enter image description here](https://istack.dev59.com/Pl4YY.webp)
我尝试使用
TabLayout.Tab select()
方法,但结果是相同的,使用的图标是未选定的图标。有人知道我该怎么办来解决吗?