【问题标题】:Default Ripple Effect disapears when using Selector使用选择器时默认波纹效果消失
【发布时间】:2015-09-23 19:25:30
【问题描述】:

我有一个默认具有正常 android 涟漪效果的 ListView。当我触摸一个元素时,它会显示动画。我没有为此在我的 xml 代码中添加任何内容。

但现在我想为我的父布局使用选择器,因为我想在上下文操作栏中选择它时突出显示它。令人惊讶的是,涟漪效应消失了……

我的选择器 XML 就是这么简单:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:state_activated="true" android:drawable="@color/listview_highlight"/>
    <item android:drawable="@color/listview_normal" />

</selector>

我发现你可以使用

“”

但这需要 Api min 21。

我想像过去一样将动画设置为默认值。

我该怎么做?

【问题讨论】:

    标签: android listview selector ripple


    【解决方案1】:

    最后我通过尝试/错误找到了解决方案。 我只需要添加

    android:drawSelectorOnTop="true"

    到我的 ListView 和瞧!
    现在一切正常,希望这篇文章可以帮助某人!

    【讨论】:

    • 这很有帮助,但我有纯色,所以当保持它为真时,背景视图不会出现。所以我从代码级别进行管理... if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { listview.setDrawSelectorOnTop(true); }.
    【解决方案2】:

    你需要创建两个选择器:

    将当前选择器保留在values 文件夹中,并将文件复制到values-v21
    然后你可以在values-v21中添加&lt;ripple&gt;&lt;/ripple&gt;

    【讨论】:

    • 但是API lvl 21下的用户不会得到任何点击效果。甚至不是正常的android标准点击效果,不是吗?因为我用这个Selector的时候点击效果完全没有了
    猜你喜欢
    • 2016-01-23
    • 2021-09-30
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 2017-05-01
    相关资源
    最近更新 更多