我目前正在为所有按钮使用drawable,当你按下按钮时,它会在它上面呈现渐变。我通过使用各种按下状态和layer-list
来实现这种效果。
现在我正在尝试使用ListView
创建相同的效果。当我单击它时,我能够将不同的图片显示为列表中对象的背景,但每当我尝试添加具有单独渐变的图片时,它会在单击{中的对象时显示默认的Android颜色{1}}。但是,它确实在此默认颜色上显示我的自定义渐变。
我知道这听起来有点模糊,所以我拍了一些截图来显示效果:
带渐变叠加的按钮,工作正常
具有每个对象背景的ListView在使用该图像加上渐变叠加时不起作用
我使用的drawable作为ListView
梯度处理按钮的原因是什么,而ListView
上没有?就像我说的那样,对于按下状态使用完全不同的图像可以正常工作,但使用背景图像加上渐变不会。
用于ListView按下状态的代码
ListView
list_gradient.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Active tab -->
<item android:drawable="@drawable/list_gradient" android:state_focused="false" android:state_pressed="false" android:state_selected="true"/>
<!-- Inactive tab -->
<item android:drawable="@drawable/button_listpage_77px" android:state_focused="false" android:state_pressed="false" android:state_selected="false"/>
<!-- Pressed tab -->
<item android:drawable="@drawable/list_gradient" android:state_pressed="true"/>
<item android:drawable="@drawable/button_listpage_77px" />
</selector>
今天摆弄了几个小时后,我仍然无法解决问题。我知道我错过了什么,但我似乎无法弄清楚是什么。有没有人有想法?
答案 0 :(得分:2)
在重新审视完所有内容后,再次在SO上阅读所有类似的问题后,我注意到我的文件中没有使用'android:listSelector`。
在ListView
:
android:listSelector="#00000000"
,我的ListView
表现得像我想的那样!
我认为ListView
与所有按钮的工作方式相同,但我错了。从我的错误中学习,它可能会为你节省很多时间。