首页 > 解决方案 > 使用 LiveData 的波纹效果/点击动画

问题描述

我在 LinearLayout 中有项目。单击时,项目会打开其他活动。单击列表项时出现波纹效果。但是列表项是 LiveData,并且无法在该项上出现涟漪效果。因为涟漪效应需要很少的时间才能出现,而且 LiveData 速度很快。我能做些什么?

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:foreground="@drawable/clicked">

单击的.xml:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/colorPrimaryDark">

    <item
        android:id="@android:id/mask"
        android:drawable="@color/colorPrimaryDark" />
</ripple>

标签: androidanimationclickandroid-livedataripple

解决方案


我解决了这个问题。我使用这些代码而不是波纹。

android:background="@android:drawable/list_selector_background"

或者

android:background="@drawable/on_press_animation"

on_press_animation.xml:

<?xml version="1.0" encoding="utf-8"?>

<item android:state_enabled="true" android:state_pressed="true" android:drawable="@color/colorPrimaryDark" />
<item android:state_enabled="true" android:state_focused="true" android:drawable="@color/colorPrimaryDark" />
<item android:state_enabled="true" android:state_selected="true" android:drawable="@color/colorPrimaryDark" />
<item android:state_activated="true" android:drawable="@color/colorPrimaryDark" />

<item android:drawable="@android:color/transparent"/>


推荐阅读