繁体   English   中英

具有自定义背景的Android Listview选择颜色

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM