android - 带有 shodows 的自定义 ListView 到 android 中的 ListView 行

标签 android android-listview

我知道如何使用 Layout inflator 制作自定义 ListView ,以及如何为 ListView 的行使用 xml 布局。但我想知道如何在 ListView 行上应用不同的样式,如下所示。

Listview with shadows in rows

最佳答案

这是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.xml。 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>

或者使用那种图像作为每个列表项的背景..

关于android - 带有 shodows 的自定义 ListView 到 android 中的 ListView 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19246835/

相关文章:

非开发人员帐户的 Android Facebook 共享对话框在几秒钟后消失

android - 有没有办法在Android(Xamarin)的DatePickerFragment中设置日期

android - 具有自定义列布局的 ListView 嵌套了 LinearLayouts

android - 在 Android 中的 BaseAdapter 的弹出菜单中重命名 ListView 项后更新 ListView

java - 如何获取多选的选中项目(android)?

android - 当我最小化一个应用程序时,我应该如何处理再次运行我的应用程序?

android - ListView onClick更新清除列表

android - Dagger Hilt 如何将类注入(inject)到 ViewModel 中

java - 无法在 Android 中使用 Picasso 从 URL 加载图像

android - 如何让 Android 应用程序将媒体安装到 SD 卡?