Эта форма является фоном для linearLayout, как я могу заставить любые TextViews в LinearLayout изменить свой цвет текста на белый во время statePressed = true родительского селектора? Также см. Мой предыдущий вопрос, чтобы увидеть больше кода: Форма не показывает
<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>
Прессованное состояние распространяется на все дочерние представления макета. Вы можете объявить список состояний цветов аналогично тому, как вы объявляете список состояний для рисования. Если вы установите цвет списка состояний для текста внутри родительского элемента, который становится нажатым, то состояние нажатия также будет применяться к цвету текста.
РЕДАКТИРОВАТЬ: Приведенная информация частично неверна и была отредактирована кем-то другим:
USE: android: duplicateParentState = "true" для TextView, а также ИСПОЛЬЗОВАНИЕ: 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.
android:duplicateParentState
View.java, метод setPressed вызывает dispatchSetPressed: https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/View.java#8521
setPressed
dispatchSetPressed
ViewGroup.java, переопределенный метод dispatchSetPressed устанавливает все нажатые дочерние представления: https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/ViewGroup.java#3833
<TextView android:textColor="#ffffff" />