Как сделать дочерний TextView формы белым, когда state_pressed = "true" - PullRequest
0 голосов
/ 13 июля 2011

Эта форма является фоном для 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> 

Ответы [ 2 ]

4 голосов
/ 13 июля 2011

Прессованное состояние распространяется на все дочерние представления макета. Вы можете объявить список состояний цветов аналогично тому, как вы объявляете список состояний для рисования. Если вы установите цвет списка состояний для текста внутри родительского элемента, который становится нажатым, то состояние нажатия также будет применяться к цвету текста.

РЕДАКТИРОВАТЬ: Приведенная информация частично неверна и была отредактирована кем-то другим:

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.

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

0 голосов
/ 13 июля 2011
<TextView
android:textColor="#ffffff"
/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...