gpt4 book ai didi

android - 以编程方式更改后,图标未显示在 FloatingActionButton 中

转载 作者:行者123 更新时间:2023-12-04 15:50:49 26 4
gpt4 key购买 nike

我有一个 AppCompatActivity,带有一个 TabLayout 和一个 FloatingActionButton,我根据当前显示的选项卡更改它的图标。

当我使用 setImageDrawablesetImageResource 以编程方式更改 FloatingActionButton 的可绘制对象时,新图标没有显示,只有空白背景按钮。

奇怪的是,如果我在以编程方式更改它的图标后隐藏和显示 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;
}
}
});

之前:

before

在我以编程方式将其更改为“加号”矢量可绘制对象之后:

result

预期:

expected

那么,我的问题是:是什么原因造成的,如何解决?

最佳答案

我也有这个问题,我通过添加对隐藏方法的调用解决了

 mFloatingActionButton.setImageDrawable(getDrawable(R.drawable.default_fab_icon));
mFloatingActionButton.hide();
mFloatingActionButton.show();

我试过 .invalidate() 但没有用。这似乎是切换 fragment 时的问题。我在使用 Navigation AndroidX 组件时体验到了它。

我不认为这是最好的解决方案,但我尝试了很多,只有这个有效——没有闪烁效果。

关于android - 以编程方式更改后,图标未显示在 FloatingActionButton 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54506295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com