【发布时间】:2019-02-03 18:47:17
【问题描述】:
我有一个AppCompatActivity 和一个TabLayout 和一个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;
}
}
});
之前:
在我以编程方式将其更改为“加号”矢量可绘制对象后:
预期:
所以,我的问题是:是什么原因造成的,如何解决?
【问题讨论】:
-
嗯,我也遇到了同样的问题。我试过 invalidate() 但这没有用。如果我让它工作,我会更新。你成功了吗?
标签: android floating-action-button android-vectordrawable