我有一个带有
TabLayout
和FloatingActionButton
的AppCompatActivity
,根据当前显示的选项卡更改FloatingActionButton
的图标。当我使用setImageDrawable
或setImageResource
动态更改FloatingActionButton
的drawable时,新图标不会显示出来,只会看到按钮的空白背景。奇怪的是,如果我在程序中更改了FloatingActionButton
的图标后隐藏并再次显示它,它就可以正常显示。这是我更改图标的代码部分:mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout) {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
switch (position) {
case 0:
floatingActionButton.setImageDrawable(ContextCompat.getDrawable(mMainActivity, R.drawable.ic_save_24dp));
if (!floatingActionButton.isShown()) floatingActionButton.show();
mNavigationView.getMenu().getItem(1).setChecked(true);
break;
case 1:
floatingActionButton.setImageDrawable(ContextCompat.getDrawable(mMainActivity, R.drawable.ic_add_24dp));
if (!floatingActionButton.isShown()) floatingActionButton.show();
mNavigationView.getMenu().getItem(2).setChecked(true);
break;
case 2:
floatingActionButton.hide();
mNavigationView.getMenu().getItem(3).setChecked(true);
break;
}
}
});
之前的样子:
在我通过编程将它更改为“加号”矢量图后:
期望的效果:
所以,我的问题是:这是什么原因造成的,如何解决?