我有一个RecycerView
,其中有一个CardView
作为行项布局的根元素。我设法使用下面的列表项布局对CardView
产生了连锁反应,如下所述。
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_8dp"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:foreground="?android:attr/selectableItemBackground"
app:cardBackgroundColor="@color/cyan"
app:cardCornerRadius="20dp"
app:cardElevation="5dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:padding="@dimen/margin_8dp">
<!-- Underlying views-->
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
类似的事情使用按钮样式在这里。
在视图保持器的RecycerView
适配器中,我有一个跨国itemView单击侦听器
class ViewHolder extends RecyclerView.ViewHolder {
ViewHolder(@NonNull final View itemView) {
super(itemView);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
}
将view.onClickListener
替换为view.onFocusChangeListener
,当行项被单击后获得焦点时,我将运行与onClick
回调中相同的代码。
但这并没有给连锁反应一个出现的机会,所以发布了一些延迟。
itemView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus)
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// Do whatever done in onClick()
}
}, 10); // delay to give the ripple effect a chance to show
}
});
我希望如果有另一个解决方案没有任何拖延。
我正在尝试将涟漪效果添加到RecyclerView的项目中。我上网看了一下,但找不到我需要的东西。我想这应该是一个自定义效果。我尝试了rodroid:background属性到RecyclerView本身,并将其设置为“?android:selectableitembackground”,但它不起作用。: 这是我试图添加效果的RecyclerView:
最小SDK为21。当我点击回收器适配器中的cardview时,不会产生连锁反应,只会进入下一个屏幕。recyclerview位于片段内部。 适配器代码,其中我对每个项目进行了onClick。
我有一个,它扩展了以下网格项: 但是涟漪效应不会出现,除非我将可见性设置为不可见。似乎涟漪效应是在下方绘制的。如何在上绘制?
我想在我的应用程序中使用水波涟漪效果,这种效果会在触摸区域反复出现,我已经访问了站点中可用的示例代码,但涟漪似乎被像素化了。 谁能帮我,实现活水涟漪效应?。我发现很难实施它。
我一直在为Lollipop(API 21)开发一个应用程序。 XML:
第一次在这里问问题,让我们看看... 我在以编程方式在CardView上设置涟漪效应时遇到了麻烦。(但我希望找到一种基本适用于任何视图的方法)问题是,我的卡片是这样编程制作的: 现在,正如您所看到的,我使用前景属性进行了尝试,基于在这里可以找到的类似问题的答案。 **更新:**卡片在Android 5之前的代码中变得不可见。