Ava*_*van 9 layout android listview shadow selector
我想在ListView项目中删除阴影并应用自定义选择器.但我不知道如何同时应用它们..
这是shadow.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="@android:color/darker_gray" />
</shape>
</item>
<item
android:right="1dp"
android:bottom="2dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/white"/>
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
和自定义选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="false"
android:drawable="@android:drawable/color/white" />
<item
android:state_pressed="true"
android:drawable="@drawable/pressed_background_blue" />
</selector>
Run Code Online (Sandbox Code Playgroud)
我试图将选择器应用于整个ListView android:listSelector="@drawable/selector.xml"和阴影到ListView项目android:background="@drawable/shadow.xml"但在这种情况下,ListView项目将有阴影但不会对触摸作出反应.
先感谢您
我找到了解决方案.seletor不出现的原因是Android ListView结构.如果将背景设置为List ItemView,它会与Selector重叠,因此您无法看到它.解决方案是在Click上使ItemView背景透明.
这是listview_item_shadow.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/darker_gray" />
</shape>
</item>
<item
android:right="1dp"
android:bottom="2dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/white"/>
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
现在你应该在ItemView的选择器中使用它!- listview_item_backgroundstate.xml
您需要设置listview_item_backgroundstate.xmlListView项目的背景
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@android:color/transparent"></item>
<item android:state_selected="true" android:drawable="@android:color/transparent"></item>
<item android:state_focused="true" android:drawable="@android:color/transparent"></item>
<item android:drawable="@drawable/listview_item_shadow"></item>
</selector>
Run Code Online (Sandbox Code Playgroud)
最后你必须设置custom_selector.xml为ListView.android:listSelector="@drawable/custom_selector.xml"
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="false"
android:drawable="@android:drawable/color/white" />
<item
android:state_pressed="true"
android:drawable="@drawable/pressed_background_blue" />
</selector>
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请阅读此精彩教程