[英]Android Listview selection color with custom background
我在使用Android ListView和選擇顏色時遇到了問題。 所以我在微調器下有一個ListView,為此ListView我制作了一個ArrayAdapter,它根據項目設置背景色。 (在屏幕截圖中看不到)
現在,當我單擊一項時,沒有選擇顏色可見。 為此,我做了一個像這樣的選擇器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/SelectionColor" android:state_pressed="true" android:state_focused="true"/> </selector>
並添加到列表視圖:
android:listSelector="@drawable/item_selector"
android:drawSelectorOnTop="true"
我添加了drawSelectorOnTop,因為沒有它,選擇顏色將不可見。
現在的問題是,在android 4上它看起來像這樣: 單擊此處
並在android 2.3.3上像這樣: 單擊此處
因此,如何設置兩個版本看起來相同的選擇顏色。 並且最好使文本仍然可見。
編輯:感謝Basim。 這就解決了根據android版本而看起來不同的問題。 但是如果我在列表視圖中有drawSelectorOnTop條目,或者如果我沒有此條目,則選擇內容是不可見的,文本仍然不可見。
試試這個選擇器,
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selector style for listrow -->
<item
android:state_selected="false"
android:state_pressed="false"
android:drawable="@drawable/normal_shape" />
<item android:state_pressed="true"
android:drawable="@drawable/gradient_bg_hover" />
<item android:state_selected="true"
android:state_pressed="false"
android:drawable="@drawable/gradient_bg_hover" />
</selector>
normal_shape.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="270"
android:endColor="#fefeff"
android:startColor="#d5dbe7" />
<stroke
android:width="1dp"
android:color="#acd9dd" />
</shape>
gradient_bg_hover.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- Gradient BgColor for listrow Selected -->
<gradient
android:startColor="#d9dd00"
android:endColor="#e6ea02"
android:angle="270" />
</shape>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.