当前位置: 首页 > 知识库问答 >
问题:

无法在RecyclerView的项目(CardView)上产生涟漪[重复]

太叔京
2023-03-14

我正在使用RecyclView及其项目作为CardView。我将卡片视图的背景设置为android: background="? android: attr/selectableItembackground"

我尝试设置前台,尝试将LinearLayout作为父级并设置其背景等,但都不起作用。

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="?android:attr/selectableItemBackground"
    card_view:cardCornerRadius="2dp"
    card_view:cardElevation="2dp">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="16dp">

        <!--TextView-->
        <!--Imageview-->
        <!--Textview-->
   </RelativeLayout>
</android.support.v7.widget.CardView>

为什么会有这种行为?

编辑:CardView有一个可用的onClickListener。

编辑2:我添加了一个RelativeLayout作为CardView的父级。并使其可点击并为其提供可选择的项目背景。仍然没有波纹。

 <RelativeLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:background="?android:attr/selectableItemBackground"
      android:clickable="true"
      android:focusable="true">

      <android.support.v7.widget.CardView
          xmlns:card_view="http://schemas.android.com/apk/res-auto"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical"
          card_view:cardCornerRadius="2dp"
          card_view:cardElevation="2dp">

          <!-- ... -->

      </android.support.v7.widget.CardView>
</RelativeLayout>

编辑3:我发布了我的确切布局代码结构。我没有提到数据绑定部分。但我希望这不会阻止涟漪。

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
         <import type="android.view.View"/>
         <variable
             name="viewModel"
             type="com.xxx.xxx.viewmodel.genericviewmodel" />
    </data>


    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clickable="true"
        android:focusable="true"
        android:orientation="vertical"
        android:foreground="?android:attr/selectableItemBackground"
        card_view:cardCornerRadius="2dp"
        card_view:cardElevation="2dp">

        <RelativeLayout
            android:id="@+id/c_open_case_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="16dp">

            <!--TextView-->
            <!--Imageview-->
            <!--Textview-->
            <!--TextView-->
            <!--Imageview-->
            <!--Textview-->
        </RelativeLayout>
    </android.support.v7.widget.CardView>
</layout>

共有1个答案

刁越
2023-03-14

更新:在重现您的问题的所有试验之后,我认为CardView数据绑定没有问题。如果您对答案不满意,您可以随时向Android开发团队提交错误报告。

使用android: foreground并确保CardView是可点击的:

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:foreground="?android:attr/selectableItemBackground"
    android:clickable="true"
    card_view:cardCornerRadius="2dp"
    card_view:cardElevation="2dp">

    <!-- ... -->

</android.support.v7.widget.CardView>
 类似资料:
  • 我有一个,它扩展了以下网格项: 但是涟漪效应不会出现,除非我将可见性设置为不可见。似乎涟漪效应是在下方绘制的。如何在上绘制?

  • 我正在尝试将涟漪效果添加到RecyclerView的项目中。我上网看了一下,但找不到我需要的东西。我想这应该是一个自定义效果。我尝试了rodroid:background属性到RecyclerView本身,并将其设置为“?android:selectableitembackground”,但它不起作用。: 这是我试图添加效果的RecyclerView:

  • 最小SDK为21。当我点击回收器适配器中的cardview时,不会产生连锁反应,只会进入下一个屏幕。recyclerview位于片段内部。 适配器代码,其中我对每个项目进行了onClick。

  • 我有一个,其中有一个作为行项布局的根元素。我设法使用下面的列表项布局对产生了连锁反应,如下所述。 类似的事情使用按钮样式在这里。 在视图保持器的适配器中,我有一个跨国itemView单击侦听器

  • 我想在我的应用程序中使用水波涟漪效果,这种效果会在触摸区域反复出现,我已经访问了站点中可用的示例代码,但涟漪似乎被像素化了。 谁能帮我,实现活水涟漪效应?。我发现很难实施它。