android - 波纹效果在整行上不可见
问题描述
我有一个 RecyclerView,其中一行有一个复选标记和一个右侧的拖放(重新排列)图标。就像在官方材料设计视频中一样,我希望涟漪效果覆盖整行。但是当我跨越 ImageView 时,CheckBox 不再可点击。这甚至可能吗?
<FrameLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="64dp"
android:orientation="horizontal"
android:background="@android:color/white"
android:paddingLeft="@dimen/small_margin"
android:paddingRight="@dimen/small_margin">
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:checked="@{safeUnbox(viewModel.isEnabled), default=false}"
android:padding="@dimen/small_margin"
android:text="@={viewModel.abbreviation}"
android:textAppearance="@style/TextAppearance.Compat.Notification.Title"
tools:text="Bijbelvertaling" />
<Space
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
<ImageView
android:id="@+id/dragger"
android:layout_width="40dp"
android:background="?android:attr/selectableItemBackground"
android:layout_height="match_parent"
android:layout_gravity="center_vertical|end"
android:scaleType="center"
android:src="@drawable/ic_drag_handle_24px"
android:contentDescription="Drag and drop icon" />
</FrameLayout>
解决方案
而不是像下面这样FrameLayout
使用RelativeLayout
并将涟漪效果android:foreground="?android:attr/selectableItemBackground"
应用于根布局。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="64dp"
android:orientation="horizontal"
android:foreground="?android:attr/selectableItemBackground"
android:background="@android:color/white"
android:paddingLeft="@dimen/small_margin"
android:paddingRight="@dimen/small_margin">
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:checked="@{safeUnbox(viewModel.isEnabled), default=false}"
android:padding="@dimen/small_margin"
android:text="@={viewModel.abbreviation}"
android:textAppearance="@style/TextAppearance.Compat.Notification.Title"
tools:text="Bijbelvertaling" />
<ImageView
android:id="@+id/dragger"
android:layout_width="40dp"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:scaleType="center"
android:src="@drawable/ic_drag_handle_24px"
android:contentDescription="Drag and drop icon" />
</RelativeLayout>
推荐阅读
- javascript - 如何将整数数组映射到NodeJS中的颜色阴影?
- node.js - 部署问题:React 应用程序无法在 github 页面上正确呈现
- google-sheets-query - 无法将日期格式更改为第一条记录
- python - XEmbed 窗口上的抓取键盘
- php - 如何仅使用 OTP Woocommerce 使用电话号码注册和登录用户
- python - 传递 Pandas 数据时,Scipy linregress 返回元组
- haskell - 在 GADT 数据构造函数中通过类型族指定依赖类型
- karate - 空手道 API 查询路径中 URL 的部分
- javascript - 与角度叠加 cdk 全球定位策略和在灰色区域的任何位置放置元素有关的问题
- github - 上传 php 项目 github 时出现文件大小错误