我在 Android 中创建了自定义 ToggleButtons,因为所有按钮都继承自相同的 xml,所以我想根据状态更改它们的行为方式,所以当检查状态时,我想更改阴影颜色,但这似乎并没有可以使用当前的 SDK。
我创建了一个包含 button_colors 的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="true"
android:color="#FFFFFF" />
<item
android:color="#000000" />
</selector>
但这似乎只适用于文本颜色,而不适用于文本上的阴影颜色。 有什么我想念的吗? 而不是在代码中手动为每个按钮执行此操作,因为我希望它应用于应用程序中的每个按钮。
更新编辑:
我的选择器目前看起来像这样
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="true"
android:drawable="@drawable/button_gradient_selected" />
<item
android:drawable="@drawable/button_gradient" />
</selector>
但正如我在下面对评论员提到的那样,我似乎无法从这里更改样式/文本颜色阴影,因为它似乎只能接受可绘制对象。
当我尝试在此处的按钮上放置不同的样式时,它会强制关闭或不会根据状态更改样式。当我只尝试在此处输入样式并将可绘制对象设置为强制关闭的样式时。无论哪种方式,它似乎都不起作用。
最佳答案
Android 框架好像不支持这个
来自 TextView.java:
case com.android.internal.R.styleable.TextView_textColor:
textColor = a.getColorStateList(attr);
break;
case com.android.internal.R.styleable.TextView_shadowColor:
shadowcolor = a.getInt(attr, 0);
break;
他们以不同的方式对待 textColor 和 shadowColor。
关于android - 按钮上的阴影颜色取决于 XML 中的状态 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5026304/