这个形状是一个linearLayout的背景,我怎么能使任何textview内的linearLayout改变他们的文本颜色为白色期间的父选择器的statpressed =true ?请参阅我之前的问题以查看更多代码:Shape不显示
<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>
按下状态被传播到布局的所有子视图。您可以声明颜色的状态列表,类似于声明可绘制对象的状态列表。如果你在被按下的父元素中的文本上设置了状态列表颜色,则按下的状态也将应用于文本颜色。
编辑:引用的信息部分不正确,是别人编辑的:
使用:android:duplicateParentState="true"的TextView,也用途:android:颜色= " @color/myNewColor"
这个XML颜色文件放在项目的res/color目录中。
下面是AOSP中的一个例子,用于默认文本:https://android.googlesource.com/platform/frameworks/base/+/主/核心/res/res/颜色/primary_text_dark.xml
编辑:你用错误的信息编辑了我的答案。无论android:duplicateParentState
设置如何,按下状态都会传播。
View.java, setPressed
方法调用dispatchSetPressed
:https://android.googlesource.com/platform/frameworks/base/+/主/core/java/android/视图/View.java # 8521
ViewGroup.java,重写的dispatchSetPressed
方法设置所有子视图按下:https://android.googlesource.com/platform/frameworks/base/+/主/core/java/android/视图/ViewGroup.java # 3833
<TextView
android:textColor="#ffffff"
/>