0
我對Android應用於ListView
的Android樣式和選擇器有以下定義,但是當我點擊它時看不到灰色梯度效果。點擊它立即顯示藍色漸變。選擇器drawables
這個例子的作者寫道:
我們希望這個應用到我們的列表選擇。我們不想總是在同一個漸變中顯示 ,我們希望漸變在每次按下列表項時將其起始顏色從 灰色更改爲淺藍色。因爲我們現在有 有兩個不同的列表選擇器 - 一個用於 按下狀態的默認狀態 - 我們需要將它們保存在單獨的文件中。
有人可以解釋它應該如何正確顯示嗎?或者我錯過了什麼?
更一般的是,我應該期望在顯示屏上看到什麼?像列表項點擊中的從灰度漸變到藍色漸變的流暢轉換?
更新:這是作者是如何「看到」它,但是當我點擊項目看起來只像畫面的右側。我可以假設作者想要默認查看列表中的所有項目都是灰色的嗎?或者這個狀態不適用於列表視圖項目?
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 - >藍色漸變
<?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>
不幸的是,它並沒有幫助。當我按下列表項目時,我不確定我應該在顯示屏上看到什麼。目前所有項目默認爲黑色,當我點擊其中一個時,它變成藍色漸變。我應該期待看到什麼? – ashur
我試了一下,4.11可以很好地工作。我得到漸變效果。現在我測試它在2.3.7,4.0.Your代碼可以很好地工作。 –
對我來說,我沒有看到灰色效果:P,我不知道我是否正確理解了選擇器,當我應該看到灰色漸變和藍色時?當我按列表中的元素時,它變成藍色,所以當它應該是灰色的?默認情況下,沒有選擇列表中的所有元素,並且所有元素都像我給出的圖像一樣黑。 – ashur