如何处理RecyclerView.ItemDecoration中的点击事件?

2024-03-10

我有一个 RecyclerView (带有 LinearLayoutManager )和一个自定义的 RecyclerView.ItemDecoration 。

比方说,我想在装饰视图中添加按钮(出于某种原因..)。

我用按钮填充布局,它正确绘制。但我无法使按钮可点击。如果我按下它,什么也不会发生(它保持不变,没有按下效果)并且 onClick 事件不会触发。

ItemDecoration布局的结构是

<LinearLayout>
  <TextView/>
  <Button/>
</LinearLayout>

我正在尝试在装饰的 ViewHolder 中设置侦听器

class ItemDecorationHolder extends RecyclerView.ViewHolder {
    public TextView header;
    public Button button;

    public HeaderHolder(View itemView) {
        super(itemView);

        header = (TextView)itemView.findViewById(R.id.header);
        button = (Button)itemView.findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //.. Show toast, etc.
            }
        });
    }
}

我正在 onDrawOver 方法中绘制装饰。 (实际上,我正在修改这个代码库:https://github.com/edubarr/header-decor https://github.com/edubarr/header-decor )

有任何想法吗?可行吗?

Thanks!


虽然真正的标题滚动到屏幕之外,但可见的标题是直接在画布上绘制的,这与普通的交互式小部件不同。

你有这些选择

  1. 重写 RecyclerView.onInterceptTouchEvent(),尽管有一些侵入性,所以我更喜欢下一个。
  2. 使用 RecyclerView.addOnItemTouchListener(),记住运动事件参数已转换为 RecyclerView 的坐标系。
  3. 使用真正的标题视图,但我认为这会有点远。

如果您采用选项 1/2,Button.setPressed(true) 并重绘标题将具有视觉按下效果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理RecyclerView.ItemDecoration中的点击事件? 的相关文章

  • 如何从该 JAVA 文件中提取 Delphi 类以与 Android 一起使用?

    我的Delphi XE7项目需要与FTDI FT311 Android 配件芯片 http www ftdichip com Products ICs FT311D html 他们帮助提供了一个 Android 演示 其中包括他们的 JAV
  • 使用 dpi 与 dp 缩放图像之间的差异

    我拥有所有由九个补丁位图组成的 dpi 可绘制目录 xxhdpi 和 xxxhdpi 是否必要 可绘制目录中的可绘制资源文件可检索所有缩放的位图 并且我使用可绘制资源文件 现在 我的问题是我还根据大小 小 正常等 创建了 缩放 布局目录 其
  • 让协程等待之前的调用

    我还没有完全掌握 Kotlin 协程 基本上我希望协程在执行之前等待任何先前的调用完成 下面的代码似乎可以工作 但它正在做我认为它正在做的事情吗 private var saveJob Job null fun save saveJob s
  • 从历史堆栈中删除活动

    我的应用程序在用户第一次运行应用程序时显示注册活动 如下所示 活动启动画面 欢迎来到游戏 注册帐户 ActivitySplashScreenSignUp 很好 填写此信息 ActivityGameMain 游戏主屏幕 因此 当用户单击每个屏
  • 需要使用手机后退按钮返回 Web 视图的帮助

    这是我的代码 package com testappmobile import android app Activity import android os Bundle import android view KeyEvent impor
  • 如何在android中压缩和解压png图像

    您好 在我的应用程序中 当我单击 zip 按钮时 我需要压缩图像文件 当我单击解压缩按钮时 我需要解压缩文件 我尝试使用下面的代码来压缩图像 但我的问题是当我单击 zip 按钮时 正在创建 zip 文件 但之后在使用 winzip 软件的系
  • Android PhoneGap 插件,UI 选项卡栏,调整 WebView 大小

    我正在创建一个美味的 PhoneGap 插件 希望一旦它能被打开 准备好了 插件基本完成了 我只需要一个漂亮的用户界面 相互作用 简而言之 我想创建一个 本机 android 工具栏组件 如果您实现 PhoneGap UIControls
  • Android:如何使用后台线程?

    我开发了一个应用程序 它从互联网获取内容并相应地在设备的屏幕上显示它 该程序运行得很好 就是有点慢 加载并显示内容大约需要 3 4 秒 我想将获取内容并将其显示在后台线程中的所有代码放在一起 当程序执行这些功能时 我想显示一个进度对话框 你
  • 像 WhatsApp 一样发送图片

    我做了一个聊天应用程序 我想添加照片 文件共享我的应用程序中的概念与 WhatsApp 相同 我已经使用该应用程序制作了Xmpp Openfire目前我正在使用此功能进行照片共享 但它并不完全可靠 public void sendFile
  • 来自相机的 MediaCodec 视频流方向和颜色错误

    我正在尝试流式传输视频捕获直接从相机适用于 Android 设备 到目前为止 我已经能够从 Android 相机捕获每一帧预览帧 byte data Camera camera 函数 对数据进行编码 然后成功解码数据并显示到表面 我用的是安
  • 具有代理设置的 Android 模拟器 - 致命错误:.//android/base/sockets/ 检查失败:isValidFd(fd)。 FD 1404 最大1024

    需要使用代理设置运行模拟器 我在命令提示符中使用以下命令来启动模拟器 emulator avd AVD for 3 7 WVGA Nexus One http proxy http username password IP Port 如果没
  • 有多少种方法可以将位图转换为字符串,反之亦然?

    在我的应用程序中 我想以字符串的形式将位图图像发送到服务器 我想知道有多少种方法可以将位图转换为字符串 现在我使用 Base64 格式进行编码和解码 它需要更多的内存 是否有其他可能性以不同的方式做同样的事情 从而消耗更少的内存 现在我正在
  • Android 中的列表视图分页

    我有一个列表视图 其中显示了 50 个元素 我决定对视图进行分页 以便视图的每个部分都有 10 个元素 然后单击 下一个 按钮以获取下一个 10 个元素 如何设置10个数据 我关注这篇文章http rakhi577 wordpress co
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • 屏幕开/关检测

    在这里 我试图确定屏幕是否打开 但按下电源锁定 解锁按钮时它似乎不起作用 应用程序运行没有错误 但 if else 中的代码似乎没有效果 Edited现在代码可以工作了 谢谢Olgun 但媒体播放器播放不会停止 并且每次在屏幕上 离屏时都会
  • Android Root 执行 su 带参数

    我在使用参数执行 su 时遇到问题 包含空格 我的 Command java 看起来像这样 public class Command Process process public String executeCommand String c
  • 剪切评级栏中的图像

    我制作了自己的评级栏 花朵图像有 4 种尺寸 xdpi hdpi 等 从 24px24px 到 64x64px
  • 使用Intent拨打电话需要权限吗?

    在我的一个应用程序中 我使用以下代码来拨打电话 Intent intent new Intent Intent ACTION CALL Uri parse startActivity intent 文档说我确实需要以下清单许可才能这样做
  • Fragment 生命周期和在不存在的 Fragment 上调用 onCreate 的问题

    我正在 Android 中测试片段 并且片段生命周期有一些令人困惑的行为 我有一个活动 在横向和纵向模式下使用 xml 布局 我有一些代码可以访问在片段布局之一中定义的 EditText 对象 如果我以横向模式启动应用程序 一切都会正常 我
  • 我应该如何在 Android 上使用 Retrofit 处理“无互联网连接”

    我想处理没有互联网连接的情况 通常我会运行 ConnectivityManager cm ConnectivityManager context getSystemService Context CONNECTIVITY SERVICE N

随机推荐

  • 动态设置用户任务受让人

    我必须在 activiti 中创建需要以下用例的流程 1 表单有一个人员搜索字段 2 当有人填写表单并使用填充姓名的人员搜索字段完成任务时 我需要将分配的下一个任务的名称设置为可以对下一个任务执行操作的用户 如何使用 activiti 引擎
  • android中什么时候绘制视图?

    我想获取活动中视图的大小 但无法在任何活动生命周期回调 onCreate onStart onResume 中获取该信息 我假设这是因为视图尚未绘制 在什么时候绘制视图 是否有回调我可以放置我的代码以便获得视图的大小 findViewByI
  • Quarkus 替代 spring-data-jdbc

    默认DAO层 ORM框架中Quarkus is Panache 在 Hibernate 之上 这很奇怪 因为我没有找到任何可插入外部 L2 缓存实现 如 Redis 的内置集成 夸库斯被称为cloud native但在实际系统中 使用默认的
  • 如何使用 cURL 在 php 中发布表单数据?

    我有以下命令 它使用 form F 选项 我知道它正在工作 curl form file home USERNAME import csv https apiprovider com api v0 imports token KEY 我需要
  • mongodb聚合获取数组中负序的最大数量

    我需要通过聚合从数组中获取负序列的最大计数 示例文档 id 1 x 1 1 1 1 1 1 1 1 1 1 1 id 2 x 1 1 1 1 1 1 1 预期结果 id 1 x 4 id 2 x 2 请指教 您可以使用 reduce htt
  • 如何为 Cloudfront 上的静态托管网站的子目录设置默认根对象?

    如何为 Cloudfront 上静态托管网站上的子目录设置默认根对象 具体来说 我想www example com subdir index html每当用户请求时提供服务www example com subdir 请注意 这是为了交付保
  • quartz:xml 文件的文档?

    quartz xml 文件 特别是 jobs xml 的文档在哪里 我找到了javadoc http www quartz scheduler org docs api index html在线 但我似乎找不到如何编写 xml 文件的文档
  • 如何在 sed 中转义斜杠、双引号和单引号?

    据我所知 当您使用单引号时 里面的所有内容都被视为文字 我想要那个来代替我 但我也想找到一个带有单引号或双引号的字符串 例如 sed i s http www fubar com URL FUBAR g 我想用 URL FUBAR 替换 h
  • Oracle 查询 - 仅获取选择字段中的字符串

    也许这听起来有点疯狂 但我需要提出一个查询来仅检索字母数字字段中的字母 例如 TABLE 1234ADD 3901AC 1812OPA82711AUU 预期结果 ADD AC OPA AUU 谢谢你 看起来您只想删除数字 您可以使用REGE
  • 无法在 Android 上使用 AlarmManager 安排通知(使用 Qt)

    我正在 qt 5 5 中执行以下操作 项目 我正在尝试使用 android 中的警报管理器安排本地通知 这是安排通知的代码 class ScheduledNotifications static public int notificatio
  • 是否可以让 Visual Studio 或 Resharper 用不同的颜色突出显示枚举?

    我认为如果用与类属性不同的颜色突出显示枚举属性 代码会更具可读性 对于 VS2010 VS2013 VS2015 VS2017 VS2019 工具 gt 选项 gt 环境 gt 字体和颜色 显示文本编辑器的设置 显示项目 用户类型 枚举 更
  • 如何提取 Tidymodels 生成的 GLMNET 系数

    我估计了一个glmnet逻辑回归使用整洁的模型 但我无法弄清楚有两件事是密切相关的 整洁的模型 a 如何提取估计系数 b 保存估计模型以供将来生产使用 以下是伪模型的代码 我试过tidy coef and predict 但他们都失败了 任
  • javamail还提取封装消息的附件内容类型:message/rfc822

    我想提取封装在消息 InputStream 中的 eml 消息的所有附件 内容类型 message rfc822 InputStream is new FileInputStream Path MimeMessage mime new Mi
  • 双重修改后如何继续合并?

    我在用着git rebase i重写历史记录 在这种情况下 对早期提交的更改集进行小的更改 换句话说 A B C master gt A B C master I know C也在隐含地改变 但你明白了 这是我迄今为止的进展 git reb
  • Eclipse Neon.1 泛型编译错误:无法推断类型参数

    MWE https www wikiwand com en Minimal Working Example import java util Comparator import java util TreeMap import static
  • Ruby 的 watchr 在 Python 中相当于什么?

    我喜欢这个概念watchr https github com mynyml watchr 它监视文件系统并在发生变化时运行回调 有纯Python 的等价物吗 最好可以 pip 安装 你可能应该看看看门狗 http packages pyth
  • 如何在这个系统内进行通信?

    我们打算设计一个具有三个 层 的系统 总部 只有一台服务器 区域上有很多 节点 使用 iPad 的用户 HQ 与节点进行 2 路通信 节点与用户进行 2 路通信 用户从不与总部沟通 反之亦然 权力机构规定总部的 Windows 应用程序 使
  • 使用样式在主题中设置活动背景?

    我想在我的所有活动中使用背景绘制 我怎样才能用一种风格做到这一点 styles xml 它为所有小部件设置了背景 我只是希望它能够用于活动 Thanks Use
  • 如何查找某个项目在列表中第n次出现的索引?

    Given x w e s s s z z s 每次出现s出现在以下索引中 1st 2 2nd 3 3rd 4第四名 7 If I do x index s 我将得到第一个索引 如何获得第四个的索引s Using 列表理解 http doc
  • 如何处理RecyclerView.ItemDecoration中的点击事件?

    我有一个 RecyclerView 带有 LinearLayoutManager 和一个自定义的 RecyclerView ItemDecoration 比方说 我想在装饰视图中添加按钮 出于某种原因 我用按钮填充布局 它正确绘制 但我无法