gpt4 book ai didi

android - ListView Item阴影+自定义选择器

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:54 30 4
gpt4 key购买 nike

我想在 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>

和自定义选择器:

<?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>

我尝试将选择器应用于整个 ListView android:listSelector="@drawable/selector.xml" 并将阴影应用于 ListView 项目 android:background="@drawable/shadow.xml " 但在这种情况下,ListView 项目将有阴影但不会对触摸使用react。

提前致谢

最佳答案

我找到了解决方案。选择器没有出现的原因是Android ListView 结构。如果您将背景设置为 List ItemView,它会与 Selector 重叠,因此您看不到它。解决方案是在单击时使 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>

现在您应该在 ItemView 的选择器中使用它! - listview_item_backgroundstate.xml您需要将 listview_item_backgroundstate.xml 设置为 ListView 项目的背景

<?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>

最后,您必须像在 ListView 中那样设置 custom_selector.xmlandroid: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>

有关更多信息,请阅读这个很棒的 tutorial

关于android - ListView Item阴影+自定义选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17323761/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com