У меня есть следующее определение стиля и селектора Android, примененного к ListView
, однако я не вижу эффекта серого градиента, применяемого, когда я нажимаю на него. При нажатии сразу отображается синий градиент.
Как написал автор этого примера:
Мы хотим применить это к нашему селектору списка. Вместо того, чтобы всегда отображать один и тот же градиент, мы хотим, чтобы градиент менял свой начальный цвет с серого на светло-голубой всякий раз, когда нажимается элемент списка. Поскольку теперь у нас есть два разных селектора списка — один для состояния по умолчанию и другой для состояния нажатия — нам нужно хранить их в отдельных файлах.
Может кто-нибудь объяснить, как это должно отображаться правильно? Или я что-то упускаю?
В общем, что именно я должен увидеть на экране? Что-то вроде плавного перехода от серого градиента к синему градиенту при нажатии на элемент списка?
Обновление: это то, как автор «видит» это, но когда я нажимаю на элемент, он выглядит только так, как на правой стороне изображения. Могу ли я предположить, что автор хочет, чтобы все элементы в списке были по умолчанию серыми? Или это состояние не применимо к элементам списка? а>
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>