Android - проблема, при которой цвет фона TextView изменяется в зависимости от его состояния - PullRequest
0 голосов
/ 03 декабря 2010

Пожалуйста, попробуйте приведенный ниже код и направьте меня, моя проблема в том, что я не получаю состояние "Pressed" для TextView , возможно ли реализовать состояние Pressed для TextView? как я?

Я успешно использую приведенный ниже код для кнопки, но не смог выполнить текстовое представление.

Просьба направить меня

Моя кнопка и код TextView:

<Button 
    android:id="@+id/Button01" 
    android:layout_width="fill_parent" 
    android:layout_height="50dp"
    android:background="@drawable/button_state"
    android:padding="20dp">
</Button>

<TextView 
    android:text="Demo of Color on state change"  
    android:id="@+id/TextView01" 
    android:layout_width="fill_parent" 
    android:layout_height="50dp"
    android:background="@drawable/button_state"
    android:focusable="true">
</TextView>

button_state.xml файл (я сохранил его в папке для рисования):

<selector
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true">
        <shape>
            <gradient
                android:startColor="@color/yellow1"
                android:endColor="@color/yellow2"
                android:angle="270" />
            <stroke
                android:width="3dp"
                android:color="@color/grey" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

    <item android:state_focused="true" >
        <shape>
            <gradient
                android:endColor="@color/orange1"
                android:startColor="@color/orange2"
                android:angle="270" />
            <stroke
                android:width="3dp"
                android:color="@color/grey" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

    <item>        
        <shape>
            <gradient
                android:endColor="@color/blue1"
                android:startColor="@color/blue2"
                android:angle="270" />
            <stroke
                android:width="3dp"
                android:color="@color/grey" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>

color.xml файл:

<resources>
<color name="yellow1">#FFFF99</color>
<color name="yellow2">#FFCC00</color>
<color name="orange1">#FF9966</color>
<color name="orange2">#FF6600</color>
<color name="blue1">#99CCFF</color>
<color name="blue2">#0033CC</color>
<color name="grey">#736F6E</color>
</resources>

1 Ответ

4 голосов
/ 03 декабря 2010

AFAIK, TextView не поддерживает нажатое состояние.

Просто используйте Button.Так как вы изменяете фон Button, вы можете сделать его таким, как вам хочется, в том числе выглядеть просто TextView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...