我有一个应用于ListView
的Android风格和选择器的以下定义,但是当我点击它时,我看不到应用灰色渐变的效果。点击它会立即显示蓝色渐变。
这个例子的作者写道:
我们想将它应用于列表选择器。而不是总是显示 相同的渐变,我们希望渐变来改变它的起始颜色 每当按下列表项时,灰色为浅蓝色。因为我们现在 有两个不同的列表选择器 - 一个用于默认状态一个 按下状态 - 我们需要将它们保存在单独的文件中。
有人可以解释它应该如何正确显示?或者我错过了什么? 更一般,我应该期望在显示屏上看到什么?点击列表项目的流畅过渡从灰色渐变到蓝色渐变?
更新:这就是作者“看到”它的方式,但是当我点击项目时,它看起来就像是在图片的右侧。我可以假设作者希望列表中的所有项目默认为灰色吗?或者此状态不适用于列表视图项?
list_item_default.xml - >灰色渐变
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<gradient
android:angle="0"
android:endColor="#FFFF"
android:startColor="#AFFF" />
<stroke
android:width="1dip"
android:color="#CCC" />
<corners android:radius="5px" />
</shape>
list_item_pressed.xml - &gt;蓝色渐变
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<gradient
android:angle="0"
android:endColor="#FFFF"
android:startColor="#AA66CCFF" />
<stroke
android:width="1dip"
android:color="#CCC" />
<corners android:radius="5px" />
</shape>
list_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/list_item_default" android:state_pressed="false"/>
<item android:drawable="@drawable/list_item_pressed" android:state_pressed="true"/>
</selector>
styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyMoviesTheme" parent="@android:style/Theme.Black">
<item name="android:listViewStyle">@style/MyMoviesListView</item>
<item name="android:windowBackground">@drawable/film_bg</item>
</style>
<style name="MyMoviesTextAppearance" parent="@android:style/TextAppearance">
<!--<item name="android:textStyle">bold</item>-->
</style>
<style name="MyMoviesListView" parent="@android:Widget.ListView">
<item name="android:background">@color/list_background</item>
<item name="android:listSelector">@drawable/list_selector</item>
<item name="android:cacheColorHint">@android:color/transparent</item>
<item name="android:fastScrollEnabled">true</item>
<item name="android:footerDividersEnabled">false</item>
</style>
</resources>
答案 0 :(得分:0)
尝试添加一句话:
<item
android:state_enabled="true"
android:drawable="@drawable/list_item_default"/>
<item
android:state_enabled="true"
android:drawable="@drawable/list_item_pressed"
android:state_pressed="true"/>