Изменения макета не отражаются в приложении - PullRequest
3 голосов
/ 01 апреля 2011

Я создал виджет кнопки с пользовательскими изображениями, сославшись на эту статью. Я установил изображения для onclick и onfocus. Но я вижу только нормальное изображение для кнопки, ничего не меняется, когда я фокусируюсь или нажимаю кнопку.

Вот мой код:

custom_button.xml:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_reload_4" />
    <item 
        android:drawable="@drawable/ic_reload_2"
        android:state_pressed="true" />
    <item 
        android:drawable="@drawable/ic_reload_3"
        android:state_focused="true" />
</selector>

Компоновка:

<Button 
    android:id="@+id/reload_btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:background="@drawable/custom_button" />

Изображения помещаются в папку для рисования. Я не уверен, почему это не работает. Я также столкнулся с проблемами с макетом, то есть я могу видеть изменения в затмении при выборе вкладки «макет», но она не отображается в приложении после его обновления. Может ли кто-нибудь помочь мне в этом ...

1 Ответ

2 голосов
/ 01 апреля 2011

Ваш селектор должен быть таким:

    <?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
        android:drawable="@drawable/ic_reload_2"
        android:state_pressed="true" />
    <item 
        android:drawable="@drawable/ic_reload_3"
        android:state_focused="true" />
 <item android:drawable="@drawable/ic_reload_4" />
</selector>

т.е. Вы должны поместить значение по умолчанию item в конец. Кажется, что Android раздувает это как switch-case блок.

...