1个FloatingActionButton,用于2个不同的徽标

时间:2019-06-30 11:38:54

标签: android android-layout

我希望能够动态更改fab的徽标“这将是我最喜欢的按钮”。当我单击它时,徽标应在1到另一个之间切换(如打开和关闭)。

例如,当您单击它时,星星变成黄色。

enter image description here

这是模拟器的屏幕截图,我的鼠标位于Fab上,并且在右屏幕上,我位于onclicklistener上,具有2个我希望可以动态更改的可绘制对象

2 个答案:

答案 0 :(得分:2)

我相信SimpleCoder的解决方案是合适的。另一种选择是,如果您要减少一个布尔值(但视图中隐藏了另一个业务规则),则可以使用任何tag的{​​{1}}属性来存储内容。

伪代码:

View

您并没有节省太多的内存,也不一定要更清楚(我坚持这个“决定”(if (mFavoriteFab.tag == null) { mFavoriteFab.tag = "" // no longer null // set drawable 1 } else { mFavoriteFab.tag = null // set drawable 1 } )不属于您的Activity / Fragment / View代码,但是对于这样简单,您就可以摆脱任何类似的方法。

答案 1 :(得分:1)

在任何方法外写下面。

boolean isClicked  = false;

内部点击监听器代码

 {
  isClicked = !isClicked;
 if(isClicked)
    mFavoriteFab.setImageResource(R.drawable.liked);
else
    mFavoriteFab.setImageResource(R.drawable.unliked);
 }