Android棒棒糖设备上的setBackgroundTintList

我正在使用FloatingActionButton 。 用户应该能够在onClick事件中切换FAB背景颜色。

但是,build议调用setBackgroundTintList似乎只从21+ API兼容。

我如何正确地使用棒棒糖设备? 有没有其他的方法可以使用?

提前致谢。

Solutions Collecting From Web of "Android棒棒糖设备上的setBackgroundTintList"

你也可以使用setSupportBackgroundTintList

将背景色应用于背景。 不会修改当前着色模式,默认为SRC_IN。

随后对View.setBackground(Drawable)的调用将自动改变drawable并应用指定的着色和着色模式。

另外看看ViewCompat.setBackgroundTintList()

将背景色应用于背景。

在API v21或更新版本上运行时,这将始终生效。 在API v21之前的平台上运行时,只有在视图实现了TintableBackgroundView接口的情况下才会生效。

我在这里find了一个我以前用过的解决scheme,是这样的:

 public static void setButtonTint(Button button, ColorStateList tint) { if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP && button instanceof AppCompatButton) { ((AppCompatButton) button).setSupportBackgroundTintList(tint); } else { ViewCompat.setBackgroundTintList(button, tint); } } 

它适用于我,我希望它也适用于你。

简单:

 fab.setBackgroundTintList(ColorStateList.valueOf(0xFF4CAF50)); 

fab是你的FloatingActionButton当然和0xFF4CAF50只是一个例子的颜色

正如Kamil Seweryn在评论中所说,我可以确认fab.setBackgroundTintList()android.support.design.widget.FloatingActionButton实例上工作。

我已经在三星Galaxy S5(安卓6)和三星Galaxy S3(安卓4.3)testing。 两个工作正常。