2012-06-30 3 views
1

Я хочу настроить свой фон. Поэтому я проектирую форму в селекторе для каждого состояния. но выполняется первый элемент.EditText Drawable Background For Every State

Это мой код:

<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:color="@android:color/black" > 
     <shape android:shape="rectangle" > 
      <solid android:color="#FFFFFF" /> 
      <stroke 
       android:width="1dp" 
       android:color="#000000" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
      <corners android:radius="10dp" /> 
     </shape> 
    </item> 
    <item android:state_pressed="true" android:color="@android:color/black" > 
     <shape android:shape="rectangle" > 
      <solid android:color="#8faefd" /> 
      <stroke 
       android:width="3dp" 
       android:color="#000000" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
      <corners android:radius="10dp" /> 
     </shape> 
    </item> 
</selector> 

ответ

1

State List

При каждом изменении состояния, состояния списка проходится сверху вниз и первый элемент, который соответствует текущему состоянию используются, выбор не основан на «наилучшем совпадении», а просто первый элемент , который соответствует минимальным критериям состояния.

Итак, вам нужно поменять местами эти два предмета. Должно быть таким образом

<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:state_pressed="true" android:color="@android:color/black" > 
     <shape android:shape="rectangle" > 
      <solid android:color="#8faefd" /> 
      <stroke 
       android:width="3dp" 
       android:color="#000000" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
      <corners android:radius="10dp" /> 
     </shape> 
    </item> 
    <item android:color="@android:color/black" > 
     <shape android:shape="rectangle" > 
      <solid android:color="#FFFFFF" /> 
      <stroke 
       android:width="1dp" 
       android:color="#000000" /> 
      <padding 
       android:left="10dp" 
       android:top="10dp" 
       android:right="10dp" 
       android:bottom="10dp" /> 
      <corners android:radius="10dp" /> 
     </shape> 
    </item> 
</selector>