gpt4 book ai didi

android - 当项目有复选框时,RecyclerView 项目不显示涟漪/触摸反馈

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:39:41 25 4
gpt4 key购买 nike

我希望 RecyclerView 中的项目在按下时有触摸反馈或波纹,但它们似乎不起作用,我认为这是复选框的原因。

波纹只有在长按时才会显示,而简单的按下不会显示。

有人可以帮我解决吗?提前致谢。

PD:我使用的是 ListView,项目布局父级是 LinearLayout。涟漪效果很好。移动到 RecyclerView 后,项目涟漪不起作用。我再次尝试使用 LinearLayout,但仍然无法正常工作。

这是布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/requestCard"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:descendantFocusability="blocksDescendants"
android:orientation="horizontal">

<ImageView
android:id="@+id/imgIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:adjustViewBounds="true"
android:maxHeight="64dp"
android:maxWidth="64dp"
android:padding="@dimen/lists_padding"
android:src="@drawable/ic_launcher"
tools:ignore="ContentDescription"/>

<TextView
android:id="@+id/txtName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toEndOf="@+id/imgIcon"
android:layout_toRightOf="@+id/imgIcon"
android:ellipsize="end"
android:maxLength="@integer/request_text_length"
android:maxLines="1"
android:padding="@dimen/lists_padding"
android:textSize="@dimen/abc_text_size_large_material"
tools:text="App Name"/>

<CheckBox
android:id="@+id/chkSelected"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:clickable="false"
android:padding="@dimen/lists_padding"/>

</RelativeLayout>

最佳答案

在您的 onClick 方法中(假设在您的回调中),确保您notifyItemChanged(position) 之后调用 notifyDataSetChanged()

notifyDataSetChanged() will conflict with those default ripple effects.

new recyclerAdapter.ClickListener() {
@Override
public void onClick(int position) {

... awesome item onClick code ...

notifyItemChanged(position);
//notifyDataSetChanged(); <//--- Causes the no ripple bug
}
};

关于android - 当项目有复选框时,RecyclerView 项目不显示涟漪/触摸反馈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34191427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com