Có thể áp dụng nền tùy chỉnh cho từng mục Listview thông qua bộ chọn danh sách không?
Bộ chọn mặc định chỉ định @android:color/transparent
cho state_focused="false"
trường hợp, nhưng việc thay đổi điều này thành một số tùy chỉnh có thể kéo không ảnh hưởng đến các mục không được chọn. Romain Guy dường như gợi ý trong câu trả lời rằng điều này là có thể.
Tôi hiện đang đạt được ảnh hưởng tương tự bằng cách sử dụng nền tùy chỉnh trên mỗi chế độ xem và ẩn nó khi mục được chọn / tiêu điểm / bất cứ thứ gì để bộ chọn được hiển thị, nhưng sẽ thanh lịch hơn nếu tất cả điều này được xác định ở một nơi.
Để tham khảo, đây là bộ chọn tôi đang sử dụng để thử và làm cho nó hoạt động:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="false"
android:drawable="@drawable/list_item_gradient" />
<!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
<item android:state_focused="true" android:state_enabled="false"
android:state_pressed="true"
android:drawable="@drawable/list_selector_background_disabled" />
<item android:state_focused="true" android:state_enabled="false"
android:drawable="@drawable/list_selector_background_disabled" />
<item android:state_focused="true" android:state_pressed="true"
android:drawable="@drawable/list_selector_background_transition" />
<item android:state_focused="false" android:state_pressed="true"
android:drawable="@drawable/list_selector_background_transition" />
<item android:state_focused="true"
android:drawable="@drawable/list_selector_background_focus" />
</selector>
Và đây là cách tôi thiết lập bộ chọn:
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:listSelector="@drawable/list_selector_background" />
Cảm ơn trước sự giúp đỡ nào!