跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

ListView 条目无法点击问题的解决方案

Android ListView 自定义 Item 时,若包含 Button、CheckBox 等子控件,可能导致焦点被子控件抢占,致使 Item 本身点击无响应。解决方法是在 Item 布局根节点设置 android:descendantFocusability 属性为 blocksDescendants,使 ViewGroup 覆盖子控件获取焦点,从而恢复 Item 点击功能。建议阅读官方文档确认具体行为差异。

栈溢出发布于 2015/3/28更新于 2026/10/2487 浏览
ListView 条目无法点击问题的解决方案

开发中常见的问题,项目中的 ListView 不仅仅是简单的文字,常常需要自定义 ListView 和继承 BaseAdapter 的 Adapter。在编写过程中,可能会出现点击每一个 Item 没有反应、无法获取焦点的情况。原因多半是由于自定义的 Item 中存在 ImageButton、Button、CheckBox 等子控件,这些子控件会获取焦点,导致点击 Item 时变化的是子控件而非 Item 本身。

此时可以使用 descendantFocusability 属性来解决。该属性定义当 View 获取焦点时,ViewGroup 和其子控件两者之间的关系。

属性的值有三种:

  1. beforeDescendants:ViewGroup 优先于其子类控件获取焦点。
  2. afterDescendants:ViewGroup 只有当其子类控件不需要获取焦点时才获取焦点。
  3. blocksDescendants:ViewGroup 会覆盖子类控件而直接获得焦点。

通常使用第三种方案,即在 Item 布局的根布局加上 android:descendantFocusability="blocksDescendants" 属性。至此,ListView 点击失效的问题即可解决。建议遇到技术问题时查阅官方文档,原文理解往往比翻译更准确。

更多推荐文章

查看全部
  • ClawX:OpenClaw 桌面版 AI 助手部署指南
  • 大模型企业分化加剧,算力市场正式转入买方时代
  • 工业级存储芯片 CSNP32GCR01-AOW 在无人机飞控系统中的应用实践
  • 从零开始构建简单 RAG 应用指南
  • C++11 右值引用与移动语义详解:从性能瓶颈到零拷贝优化
  • Java 选择结构详解:if 语句与三元运算符
  • 数据结构:图的存储结构与核心算法解析
  • Flutter 集成 BIP340 实现鸿蒙 Schnorr 签名实战
  • Whisper-large-v3 多任务并行:同一服务支持转录/翻译/摘要
  • 飞算JavaAI实战:在线图书借阅平台设计与实现
  • MongoDB 详细安装与配置指南(Windows / Linux / macOS)
  • Qwen-Image-Lightning 极速图像生成技术解析
  • 基于 OpenClaw 和飞书开放平台实现 AI 新闻推送机器人
  • 终身机器人学习数据集 LIBERO 详解
  • 前端无障碍性实践:确保网站对所有人可用
  • 基于腾讯云服务器部署 Clawdbot 实现 Telegram 机器人自动回复
  • 无人机视觉导航:DAMO-YOLO TinyNAS 实时障碍物检测
  • 群智能算法:灰狼优化算法(GWO)原理与实现
  • Google AI Studio 最佳实践与 Gemini 3.0 Pro 参数调优
  • Vivado 许可证文件获取与配置指南

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online