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

Android回收器视图涟漪效应不起作用

终睿
2023-03-14

我使用以下xml drawable作为我的recyclerview列表项的背景。

触摸选择器。xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_activated="true"
        android:drawable="@color/green_text_500"/>
    <!-- Default, "just hangin' out" state. The base state also
         implements the ripple effect. -->
    <item android:drawable="@drawable/touch_selector_base" />
</selector>

触摸选择器底部。xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/light_grey">
    <item android:id="@android:id/mask" android:drawable="@color/light_grey" />
    <item android:drawable="@color/dark_grey"/>
</ripple>

在列表项中,我正在使用触摸选择器。xml在我的列表_item _quote中如下所示。xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="86dp"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:clickable="true"
    android:focusable="true"
    android:background="@drawable/touch_selector"
    >
    // layout
</LinearLayout>

我有另一个xml绘图touch_selector_dark.xml和touch_selector_base_dark.xml

在我的recycler视图适配器中,我根据索引在这两个可提取项之间切换。对于偶数索引,我使用较暗的可绘制索引,对于奇数索引,我使用较亮的背景来产生交替效果。但问题是连锁反应没有起作用。

以下是颜色:

浅灰色=#5b

dark_grey=#212121

green_text_500=#37863a

共有3个答案

山森
2023-03-14

我认为您的ripple文件无效,您可以检查:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <solid android:color="@color/dark_grey"/>
        </shape>
    </item>
</selector>

您可以使用android:前台="@绘图/touch_selector"来显示涟漪效果,也可以使用android: background="来设置任何其他可绘制的背景。

严高峻
2023-03-14

试试这个对我有用

android:clickable="true"
android:focusable="true"
android:foreground="?attr/selectableItemBackground"
曾嘉福
2023-03-14

在recycleview列表布局中使用此行

android:background="?android:attr/selectableItemBackground"
 类似资料:
  • 我一直在为Lollipop(API 21)开发一个应用程序。 XML:

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

  • 好的,所以我知道涟漪效应是唯一可用的Lollipop和以上。但是,当设置ImageButton时,我仍然无法获得像“常规”按钮一样的涟漪效果,只显示一个图像(和透明bg)。。。 我添加了AppCompat v7,并将第二个布局放在我的drawable/layout-v21文件夹中,该文件夹中有以下按钮: 但背景是灰色的,纹波(也是灰色的)无法定制。 所以,如果我只需要一个很好的ripple dra

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

  • 我正在试图找出为什么我的涟漪效应不符合我放置它的形状。下面是我正在使用的代码: 这是我设置到ImageViews背景的多用途按钮 这是我正在研究的可抽屉: 正如您在这个版本中所看到的,虽然它已经修复了现在在边界内的问题,但它不再保持涟漪效应;它缓慢地将背景色转换为第二种颜色,而不是产生实际的涟漪效果。 另外,为了明确起见,我还尝试将形状移动到它自己的可绘制文件(名为testing2),然后像下面这

  • 我也尝试将放入中,但徒劳无功。