Java 带有自定义图标的表格布局不';不要在启动时更改图标

Java 带有自定义图标的表格布局不';不要在启动时更改图标,java,android,android-tabs,Java,Android,Android Tabs,在我的布局中有TabLayout和ViewPager,非常标准。 我正在为我的选项卡使用自定义视图。 在Activity onCreate方法中,我调用: 以下是mu抽绳设备的外观: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@draw

在我的布局中有TabLayout和ViewPager,非常标准。 我正在为我的选项卡使用自定义视图。 在Activity onCreate方法中,我调用:

以下是mu抽绳设备的外观:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/tab_home_active" android:state_selected="true" />
    <item android:drawable="@drawable/tab_home" />
</selector>

如果选择了tab,我想显示橙色图标,否则显示灰色图标。 除了一开始,一切都很顺利。如果我从一个选项卡导航到另一个选项卡一次-一切正常:

但当活动刚开始时-主页选项卡未“选中”:

我已经尝试过务实地选择tab,但没有帮助。

以下是一个答案:

binding.tabs.getTabAt(0).getCustomView().setSelected(true);
甚至

int selectedTabPosition = binding.tabs.getSelectedTabPosition();
binding.tabs.getTabAt(selectedTabPosition).getCustomView().setSelected(true);
这不是故意的,我只是在安卓资源中挖掘了一点。

试试:


Viewpage.setcurrentItem(0)结尾

您是否尝试过在
onResume()方法中以编程方式选择tab?回答您自己的问题没有问题,只要它是一个解决方案。你甚至可以接受。因为它可能对其他人有用。在本例中,我得到
java.lang.IndexOutOfBoundsException:无效索引0,在
tabLayout.getTabAt(0)上的大小为0
。setCustomView
-没有选项卡。
int selectedTabPosition = binding.tabs.getSelectedTabPosition();
binding.tabs.getTabAt(selectedTabPosition).getCustomView().setSelected(true);