gpt4 book ai didi

android - 涟漪效应有时不出现

转载 作者:可可西里 更新时间:2023-11-01 18:47:48 26 4
gpt4 key购买 nike

我定义了一个波纹可绘制对象并将其设置为 ListView 项 View 背景的背景。它几乎可以正常工作,但涟漪效应有时不会在按下时出现。

这是波纹可绘制代码:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:attr/colorControlHighlight">
<item>
<selector>
<item android:state_activated="true">
<shape><solid android:color="?android:attr/colorButtonNormal"/>
</shape>
</item>

<item>
<shape><solid android:color="@android:color/transparent"/>
</shape>
</item>
</selector>
</item>
</ripple>

我有一个抽屉导航,它使用这个可绘制对象作为抽屉项目的背景:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/navigation_menu_height"
android:orientation="horizontal"
android:background="@drawable/listItemBackground">
....
</RelativeLayout>

但是每次打开应用程序时,默认选择的项目在我按下时不会显示波纹效果。但是在我选择另一个项目然后再次选择它之后,一切都会正常。

另一个几乎一样的ListView我用的一模一样,只是选择模式是multiple。而这一次,只要项目被选中,就不会出现按下时的波纹效果。

在另一个没有指定选择模式的listView中,只有第一项显示波纹效果,其他表现与低Android版本相同。

我真的不知道如何让它适用于所有场景。也许真的和ListView的选择模式有关?

====编辑====

我刚刚为所有这三个 listView 添加了属性 drawSelectorOnTop,现在前两个问题已经解决了。然而对于第三个,它现在变成了这样:

波纹效果适用于所有元素,除了第一个显示两个波纹的元素!其中一个从我手指按下的地方开始,而另一个总是从中间开始!

====再次编辑====好的,现在我调整 drawable 以将激活状态移动到 ripple 节点之外,连同 listview 的 drawSelectorOnTop 属性,问题现在完全消失了。

最佳答案

好的,经过一些尝试和错误,我终于让它工作了。

首先,将激活状态移出 ripple 节点:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true">
<shape>
<solid android:color="?android:attr/colorButtonNormal"/>
</shape>
</item>
<item>
<ripple android:color="?android:attr/colorControlHighlight">
<item>
<shape>
<solid android:color="@android:color/transparent"/>
</shape>
</item>
</ripple>
</item>
</selector>

之后,将 drawSelectorOnTop 设置为 true 用于使用 drawable 作为项目背景的 ListView。

现在涟漪效果可以完美发挥了。

关于android - 涟漪效应有时不出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27456582/

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