Tôi nghĩ cách dễ nhất là tạo hai bộ chọn được sử dụng làm tài nguyên nền, với màu trong suốt ở chế độ state_selected: (res/drawable/alterselector1.xm l :)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:drawable="@drawable/transparent" />
<item android:state_pressed="true"
android:drawable="@drawable/transparent" />
<item android:state_selected="false"
android:drawable="@drawable/altercolor1"/>
</selector>
(res/drawable/alterselector2.xml :)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:drawable="@drawable/transparent" />
<item android:state_pressed="true"
android:drawable="@drawable/transparent" />
<item android:state_selected="false"
android:drawable="@drawable/altercolor2"/>
</selector>
(res/values / colors.xml :)
<resources>
<drawable name="transparent">#00ffffff</drawable>
<drawable name="altercolor1">#ffffffff</drawable>
<drawable name="altercolor2">#ff000000</drawable>
</resources>
Sau đó, bạn thiết lập các hình nền trong phương thức getView của bộ điều hợp với phương thức setBackgroundResource:
if (position % 2 == 0){
reusableView.setBackgroundResource(R.drawable.alterselector1);
} else {
reusableView.setBackgroundResource(R.drawable.alterselector2);
}
Bây giờ khi bạn chọn một hàng, nền của bạn sẽ không ẩn bộ chọn gốc đằng sau.
Điều này hoạt động một phần - Tôi có thể thấy đánh dấu khi mục được lấy nét bằng cách sử dụng nút cuộn, nhưng tôi không thể làm cho nó hoạt động khi mục được nhấn. Tôi đã thử tất cả các trạng thái được liệt kê ở đây: http://developer.android.com/guide/topics/resources/color-list-resource.html, nhưng không có gì hoạt động ... – zorglub76
Tôi đã chỉnh sửa các bộ chọn để xử lý trạng thái được nhấn . Có vẻ như khi bạn nhấn mục, nó sẽ mất trạng thái đã chọn của nó. Vì vậy, bạn phải xác định trạng thái nhấn để được minh bạch quá. Chỉ cần quan tâm đến thứ tự, bởi vì bộ chọn sẽ sử dụng mục đầu tiên khớp với trạng thái hiện tại, vì vậy mục state_selected = "false" sẽ ở dưới cùng. – Utyi
Hoạt động! Gần một năm kể từ khi tôi hỏi câu hỏi này !! Cảm ơn! – zorglub76