此形状是linearLayout的背景,如何在LinearLayout中使任何TextView在父选择器的statePressed = true期间将其文本颜色更改为白色?另请参阅我之前的问题以查看更多代码:Shape does not show
<shape
xmlns:android="http://schemas.android.com/apk/res/android">
<solid
android:color="#FFFFFF" />
<stroke
android:width="1dp"
android:color="#AA000000" />
<corners
android:topLeftRadius="10dp"
android:topRightRadius="10dp" />
<gradient
android:startColor="#6633cc"
android:endColor="#00ccff"
android:angle="270" />
</shape>
答案 0 :(得分:4)
压缩状态传播到布局的所有子视图。您可以声明状态颜色列表,类似于声明可绘制状态列表的方式。如果您在按下的父级内的文本上设置状态列表颜色,则按下的状态也将应用于文本颜色。
编辑:引用的信息部分不正确,并由其他人编辑:
USE:对于TextView,android:duplicateParentState =“true” 使用:android:color =“@ color / myNewColor”
此XML颜色文件位于项目的res / color目录中。
以下是AOSP的一个示例,用于默认文本: https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/color/primary_text_dark.xml
编辑:您使用不正确的信息编辑了我的答案。无论android:duplicateParentState
设置如何,都会传播按下状态。
View.java,setPressed
方法调用dispatchSetPressed
:
https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/View.java#8521
ViewGroup.java,重写的dispatchSetPressed
方法设置了所有子视图:
https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/ViewGroup.java#3833
答案 1 :(得分:-1)
<TextView
android:textColor="#ffffff"
/>