Bir*_*rdy 0 android listview background selection
我有一个Android ListView和选择颜色的问题.所以我在Spinner下有一个ListView,对于这个ListView,我做了一个ArrayAdapter,根据项目设置backgroundcolor.(截图中没有显示)
现在当我点击一个项目时,没有可见的选择颜色.为此,我做了一个像这样的选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/SelectionColor" android:state_pressed="true" android:state_focused="true"/> </selector>
Run Code Online (Sandbox Code Playgroud)
并添加到列表视图:
android:listSelector="@drawable/item_selector"
android:drawSelectorOnTop="true"
Run Code Online (Sandbox Code Playgroud)
我添加了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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7974 次 |
最近记录: |