如何在单击时产生涟漪,并在选定的卡片视图上出现其他前景



我在ListView中有多个CardView。可以单击并选择这些卡片视图。单击时,我想显示一个ripple。选择后,我想更改foreground。目前是两部作品之一。如何使它们同时工作?

我尝试了各种不同的版本。带遮罩和不带遮罩,设置所有状态,并且只有一个。问题是有 4 种可能的结果。

1:不显示
任何内容2:仅显示
纹波3:选择卡片视图
后,只有前景会改变颜色4:显示波纹,但前景即使按下也会改变颜色,未选择时不会变回。

ListView项目:

<android.support.v7.widget.CardView
    android:id="@+id/card"
    android:layout_width="match_parent"
    android:layout_height="280dp"
    app:cardElevation="4dp"
    app:cardCornerRadius="4dp"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:layout_marginTop="5dp"
    android:layout_marginBottom="5dp"
    android:foreground="@drawable/rowselector"
    >

行选择器.xml文件:

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

card_foreground_selector.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true">
        <shape android:shape="rectangle">
            <solid android:color="#aae3f7ee" />
        </shape>
    </item>
    <item android:state_focused="true">
        <shape android:shape="rectangle">
            <solid android:color="#aae3f7ee" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#00000000" />
        </shape>
    </item>
</selector>

我以为这在按下时会显示波纹,当长时间按下/选择CardView时会显示不同的foreground颜色。ripple目前丢失。

试试看怎么样:

可点击 = 真

?android:attr/selectableItemBackground

要在选择项目后使用前景更改颜色时将涟漪效果应用于背景?

<android.support.v7.widget.CardView
    android:id="@+id/card"
    android:layout_width="match_parent"
    android:layout_height="280dp"
    app:cardElevation="4dp"
    app:cardCornerRadius="4dp"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:layout_marginTop="5dp"
    android:layout_marginBottom="5dp"
    android:clickable="true"
    android:background="?android:attr/selectableItemBackground"
    android:foreground="@drawable/card_foreground_selector">

相关内容

  • 没有找到相关文章

最新更新