android seticon方法,android - Android Tab布局setIcon方法仅在OnTabSelectedListener内部起作用 - 堆栈内存溢出...

在Android应用开发中遇到一个问题,尝试在onCreate方法中通过TabLayout的getTabAt()方法设置标签图标,但代码未生效。然而,相同代码在TabLayout的OnTabSelectedListener中却能正常工作。开发者疑惑为何在不同上下文中同一代码表现不一致,寻求解决方案。
摘要由CSDN通过智能技术生成

我正在尝试在活动的onCreate方法中使用此代码将图标设置到我的标签布局的标签中

tabLayout.getTabAt(0).setIcon(R.drawable.icon0);

tabLayout.getTabAt(1).setIcon(R.drawable.icon1);

tabLayout.getTabAt(2).setIcon(R.drawable.icon2);

因为它应该工作得很好,因为类似的TabLayout.Tab方法(例如

tabLayout.getTabAt(0).getOrCreateBadge().setNumber(number);

在完全相同的范围内进行操作,实际上不是。

奇怪的是,如果我将其放在选项卡布局的OnTabSelectedListener ,则可以使用相同的代码

tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {

@Override

public void onTabSelected(TabLayout.Tab tab) {

tabLayout.getTabAt(0).setIcon(R.drawable.icon0);

tabLayout.getTabAt(1).setIcon(R.drawable.icon1);

tabLayout.getTabAt(2).setIcon(R.drawable.icon2);

}

@Override

public void onTabUnselected(TabLayout.Tab tab) {

}

@Override

public void onTabReselected(TabLayout.Tab tab) {

}

});

就我所知,这背后没有逻辑。 这是错误还是我错过了什么? 如何在不使用侦听器的情况下使用这些方法?

我使用这些版本的库:

implementation 'androidx.appcompat:appcompat:1.1.0'

implementation 'com.google.android.material:material:1.2.0-alpha01'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值