gpt4 book ai didi

android - setBackgroundTintList 不直接应用

转载 作者:可可西里 更新时间:2023-11-01 11:40:57 26 4
gpt4 key购买 nike

我在 AppCompatButton 类上应用 setBackgroundTintList() 方法,如下所示:

applyTintColor(this.appCompatButton, R.drawable.button_orange_color_state);

applyTintColor 方法:

public void applyTintColor(@NonNull View view, @DrawableRes int color) {

ColorStateList colorStateList = ContextCompat.getColorStateList(view.getContext(), color);
ViewCompat.setBackgroundTintList(view, colorStateList);
}

我的 button_orange_color_state.xml 文件。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Disable background -->
<item android:color="@color/brand_secondary"
android:state_enabled="false"/>
<!-- Default background -->
<item android:color="@color/orange"/>
</selector>

问题:应用方法 applyTintColor 后,按钮采用默认的白色透明颜色而不是我的橙色形状。但我注意到,当我按下按钮时,按钮正确地采用了禁用状态的颜色,然后再次启用按钮后,颜色变为橙色。到目前为止,我发现的唯一但肮脏的方法是在我的 applyTintColor 末尾添加以下代码:

    view.setEnabled(!view.isEnabled());
view.setEnabled(!view.isEnabled());

这样,按钮就直接考虑到了好的橙色。

所以我想知道是否有人有更好的主意来让这里的事情变得更好?

最佳答案

供以后引用,如果 View 已经布局,在view.setBackgroundTintList(tint)之后,可以调用view.refreshDrawableState()

关于android - setBackgroundTintList 不直接应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36114388/

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