我正在尝试在活动的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'