2011-09-07 26 views
5

Tôi cố gắng chuyển nền của các nút nếu chúng được nhấn. Tôi xây dựng một Selector như câu trả lời gợi ý ở đây: Standard Android Button with a different colorBộ chọn nền nút

cuối cùng tôi muốn đặt GradientDrawables bên trong, nhưng với mục đích gỡ lỗi, tôi chỉ muốn đặt màu, để xem nó đang hoạt động. Đây là Bộ chọn của tôi

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@color/red"/> 
    <item 
    android:state_focused="true" 
    android:drawable="@color/white"/> 
    <item 
    android:state_pressed="true" 
    android:drawable="@color/white"/> 
</selector> 

không may điều này không hoạt động. Tôi đặt Selector làm Background từ Button của tôi, và chỉ thấy chúng có màu đỏ. Những gì tôi làm sai (Build Target 2.1)

Trả lời

19

đặt này ở cuối

mục android: drawable = "@ màu/đỏ"

tôi có nghĩa là lựa chọn thứ ba, nó sẽ làm việc. android kiểm tra các điều kiện xml ngay từ đầu, thẻ đầu tiên không có bất kỳ điều kiện nào, vì vậy thẻ sẽ luôn chọn màu đỏ, vì vậy bạn đã đặt điều kiện trước và sau đó là điều kiện mặc định.

+0

hmm điều này không hiệu quả, bởi vì bây giờ chúng luôn màu trắng –

+0

là nút của bạn có đang tập trung không? –

+0

Tôi không nghĩ vậy. Tôi có hai nút, và cả hai đều có màu trắng mà không có thay đổi khi nhấp vào –

0

đây là mã tôi sử dụng và nó hoạt động thực sự tốt.

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/button_clicked" 
     android:state_pressed="true" android:state_enabled="true" /> 

    <item android:drawable="@drawable/button" android:state_enabled="true" /> 
    </selector> 

ở đây tôi sử dụng hai hình ảnh tôi đã dùng photoshop làm nền

là người đầu tiên được button_clicked và thứ hai là nút

sao chép nó và thay đổi sử dụng tài nguyên của riêng bạn.

hy vọng tôi có thể giúp :)

Các vấn đề liên quan