我完全正常工作,虽然我需要将代码更改为listSelector,现在我不知道怎么做才能保持左边的边框。
在所有listview行中,我有一个边框: border.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#E30E0E"/>
</shape>
</item>
<item android:left="5dip">
<shape android:shape="rectangle">
<solid android:color="#E3E3E3"/>
</shape>
</item>
</layer-list>
这会设置每一行的左侧,一个带颜色的边框。但是,正如您所看到的,它具有背景的默认纯色。使用此代码,每当用户点击列表视图的项目时,他都不知道他是否已经点击过,因为它具有不会改变onState()的纯色。
为了使其正常工作,我需要创建一个listSelector,其中状态选择加上状态按下背景渐变。
selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="false"
android:state_pressed="false"
android:drawable="@drawable/listview_gradient_bg"/>
<item android:state_pressed="true"
android:drawable="@drawable/listview_gradient_bg_hover" />
<item android:state_selected="true"
android:state_pressed="false"
android:drawable="@drawable/listview_gradient_bg_hover" />
</selector>
所以,我的问题是:有任何方式可以链接&#34;这两段不同的代码?
答案 0 :(得分:1)
尝试把这个
<item android:left="5dip">
<shape android:shape="rectangle">
<solid android:color="#E3E3E3"/>
</shape>
</item>
进入listview_gradient_bg和listview_gradient_bg_hover drawables,然后将选择器链接到适配器中的每一行。