【问题标题】:Listview item ripple showing over cell hiding contentsListview 项目波纹显示单元格隐藏内容
【发布时间】:2015-06-18 09:19:05
【问题描述】:

当用户单击列表视图中的单元格时,我试图在 Lollipop 设备上显示连锁反应。根据Listview selector with colored background and ripple effect 的帖子,我按照android:drawSelectorOnTop="true" 的建议做了同样的事情,但是在显示波纹后,背景颜色会显示在单元格上,从而完全隐藏单元格的内容。

那么想知道是否有任何适当的方法来实现列表视图中单个项目的涟漪效应?

【问题讨论】:

    标签: android listview android-listview ripple


    【解决方案1】:

    您是否为 ListView 中的项目指定了自定义背景?如果是这样,那么您需要为您的背景创建两个可绘制对象,一个在“drawable”文件夹中,另一个在“drawable-v21”文件夹中。

    例如,如果drawable的文件名是“list_item_bg.xml”,那么

    /drawable-v21/list_item_bg.xml 将是:

    <?xml version="1.0" encoding="utf-8"?>
    <ripple xmlns:android="http://schemas.android.com/apk/res/android"
            android:color="?attr/colorControlHighlight">
        <item>
            <shape xmlns:android="http://schemas.android.com/apk/res/android">
                <corners android:radius="4dp" />
                <solid android:color="@color/accent" />
            </shape>
        </item>
    </ripple>
    

    和 /drawable/list_item_bg.xml 会是这样的:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@color/dark_accent" android:state_pressed="true"/>
        <item android:drawable="@color/accent" android:state_focused="true"/>
        <item>
            <shape xmlns:android="http://schemas.android.com/apk/res/android">
                <corners android:radius="4dp" />
                <solid android:color="@color/accent" />
            </shape>
        </item>
    </selector>
    

    希望这会有所帮助。

    【讨论】:

    • 还是一样:(
    • 你能发布你的列表项布局的代码吗?
    • 我用的是你上面贴的那个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多