android– 对RecyclerView的RIpple效果不适用于轻拍

android– 对RecyclerView的RIpple效果不适用于轻拍,第1张

概述我试图在我的RecyclerView上实现涟漪效应.这是我的布局:<android.support.v7.widget.CardViewxmlns:android="http://schemas.android.com/apkes/android"xmlns:card_view="http://schemas.android.com/apkes-auto"android:id="@+id/ca

我试图在我的RecyclerVIEw上实现涟漪效应.这是我的布局:

<androID.support.v7.Widget.CardVIEw    xmlns:androID="http://schemas.androID.com/apk/res/androID"        xmlns:card_vIEw="http://schemas.androID.com/apk/res-auto"        androID:ID="@+ID/card"        androID:layout_margintop="7dp"        androID:layout_marginleft="16dp"        androID:layout_marginRight="16dp"        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content"        card_vIEw:cardCornerRadius="5dp"        androID:clickable="true"        card_vIEw:cardElevation="5dp"        androID:focusable="true"        androID:foreground="?androID:attr/selectableItemBackground">            <linearLayout                androID:layout_wIDth="wrap_content"                androID:layout_height="wrap_content"                androID:orIEntation="vertical"                androID:padding="16dp">                <TextVIEw                    //some propertIEs />                <TextVIEw                    //some propertIEs />                <TextVIEw                    //some propertIEs />            </linearLayout>    </androID.support.v7.Widget.CardVIEw>

为了实现onclick监听器,我基本上遵循了这个教程:http://sapandiwakar.in/recycler-view-item-click-handler/

问题是由于线条产生的涟漪效应:

androID:clickable="true"androID:focusable="true"androID:foreground="?androID:attr/selectableItemBackground"

没有工作在光(也就是说快速)按下.当我快速点击屏幕时,会触发点击监听器.这意味着已检测到触摸事件,但没有显示波纹效果.如果我想看到涟漪效应,我必须在释放之前保持一段时间更长的屏幕压力.

有没有办法纠正这种行为,即使是快速按下也会显示涟漪效应?

解决方法:

我遇到了类似的问题.我在RecyclerVIEw上有一个ItemClickListener,在那个监听器中我推了一个新片段.通过反复试验,我注意到删除或清空项目点击监听器每次都会显示突出显示,即使在轻敲时也是如此.

解决方法是更改​​我的onItemClick方法:

@OverrIDepublic voID onItemClick(final RecyclerVIEw parent, final VIEw vIEw, final int position, final long ID){    VIEwCompat.postOnAnimationDelayed(parent, new Runnable()    {        @OverrIDe        public voID run()        {            // Your click code goes here        }    }, 50);}

这会将您的点击 *** 作推迟到下一个动画步骤后50ms,并在您执行单击 *** 作之前为动画提供足够的时间来加载和运行.

总结

以上是内存溢出为你收集整理的android – 对RecyclerView的RIpple效果不适用于轻拍全部内容,希望文章能够帮你解决android – 对RecyclerView的RIpple效果不适用于轻拍所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1108600.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存