GridView, ListView的item中嵌入button或其他view导致item点击失效的研究

Android gridview点击item有时候无效的解决方案 在开发中有时候会遇到当item数量超过gridview的高度时,会出现设置了setItemClick事件依然不管用的情况,该怎么解决呢,代码如下: import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import ... 阅读详情

GridView, ListView的item中如果嵌入了button会导致item点击失效。

原因是:

AbsListView.java 中的代码:

    private void onTouchUp(MotionEvent ev) {
        switch (mTouchMode) {
        case TOUCH_MODE_DOWN:
        case TOUCH_MODE_TAP:
        case TOUCH_MODE_DONE_WAITING:
            final int motionPosition = mMotionPosition;
            final View child = getChildAt(motionPosition - mFirstPosition);
            if (child != null) {
                if (mTouchMode != TOUCH_MODE_DOWN) {
                    child.setPressed(false);
                }

                final float x = ev.getX();
                final boolean inList = x > mListPadding.left && x < getWidth() - mListPadding.right;
                if (inList && !child.hasFocusable()) {
                    if (mPerformClick == null) {
                        mPerformClick = new PerformClick();
                    }

                    final AbsListView.PerformClick performClick = mPerformClick;
                    performClick.mClickMotionPosition = motionPosition;
                    performClick.rememberWindowAttachCount();

                    mResurrectToPosition = motionPosition;
...
}
在响应onItemClickListener之前会先判断子view是否有焦点。

!child.hasFocusable()

如果无焦点才会响应onItemClickListener中的内容。

所以必须保证子类无焦点。

方法1. item容器调用 setDescendantFocusability( FOCUS_BLOCK_DESCENDANTS); button 调用setFocusable(false)

方法2. xml文件中 配置 android:descendantFocusability= "blocksDescendants" button 设置 android:focusable = "false"


spannableString 点击失效的处理方法:

http://stackoverflow.com/questions/8558732/listview-textview-with-linkmovementmethod-makes-list-item-unclickable




拼多多Android面试题及参考答案 Android 系统采用分层架构设计,从底层到上层依次为Linux 内核层硬件抽象层(HAL)系统运行时库层应用框架层应用层,共五层。位置:Linux 内核层与系统运行时库层之间,是“硬件与系统的隔离层”。核心作用:屏蔽硬件差异,为上层提供统一的硬件访问接口,解决 Android 开源与硬件厂商闭源的矛盾,具体功能如下:硬件能力抽象:将硬件的具体实现(如不同厂商的摄像头芯片、音频芯片)封装为标准化接口(如Camera HALAudio HAL。 阅读详情

相关推荐

GridView中添加button后button无响应,和item无响应的解决

解决了GridView中添加button后button无响应,以及button有相应后 原来的item没有响应的问题

android gridview 按钮事件处理,Android初学者:触摸android gridview中的事件

我使用以下代码来处理gridview(从http://developer.android.com/resources/tutorials/views/hello-gridview.html稍微修改).我想用它们的“触摸”等价物替换onClicklistener和onClick()方法,即touchlistener和onTouch(),这样当我触摸gridview中的元素时,元素的图像会发生变化,并...

weixin_29665183的博客 495

ES快速入门,一篇就懂!

Elastic Search 入门前言什么是搜索为什么常用数据库不适合做搜索什么是Lucene什么是Elastic SearchES核心概念ES使用正常启动索引​增删改查ES增加常见问题:ES删除ES查询欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的

qq1592的博客 9310

GridView的Item为Button时,不能响应onItemClick的解决方法

如果GridView的Item是Button的话,Button自带的点击响应函数就会覆盖onItemClick函数。 解决方法一,亲测无效: 在Item的布局文件XML的根部添加属性android:descendantFocusability=”blocksDescendants” android:descendantFocusability属性介绍: beforeDescenda...

Michaelia_hu的博客 540

企业微信群机器人配置全攻略:从零到消息推送的完整流程

本文详细介绍了企业微信群机器人的配置与使用全流程,从零开始指导如何创建机器人、获取Webhook地址,到通过HTTP请求发送文本、Markdown、图片及模板卡片等多种消息类型。内容涵盖核心的接口配置、安全实践及实战应用场景,帮助开发与运维团队快速构建自动化消息推送中枢,提升协作效率。

weixin_29231725的博客 836

LangChain学习及应用(超详细)

Model I/O 部分是与语言模型进行交互的核心组件,包括输入提示(Prompt Template)、调用模型(Model)、输出解析(Output Parser)。简单来说,就是输入、处理、输出这三个步骤。LLM 因其具有海量参数,需要花费相当的物力与时间成本进行预训练和微调,同时商用 LLM 还需要进行各种安全测试与风险评估等。因此 LLM 会存在知识滞后的问题。在专有领域,LLM 无法学习到所有的专业知识细节,因此在面向专业领域知识的提问时,无法给出可靠准确的回答。

weixin_39764056的博客 4233

Android studio 中Listview 和 GrideView的item与Button、Checkbox等item的子类控件焦点抢夺问题

本文主要描述Listview 和 GrideView的焦点抢夺问题,内容为自己的学习理解,意在帮助安卓初学者深入理解两者的焦点问题,如有不当欢迎评论区指出我的错误。 主要学习了下面三篇博客 链接: Android ListView Item与子控件焦点问题. 链接: Android之ListView的item获取不到焦点问题. 链接: Android–焦点问题-ListView中item及其子控件无法响应点击事件. 问题描述 在我们使用listview或者grideview时,当item中有存在button

wzy1120433847的博客 2853

Python实战:5分钟搞定滑动平均窗口计算(附完整代码+逐行注释)

本文深入解析Python中滑动平均窗口计算的实现与优化,提供Numpy、Pandas等多种高效方案,并附完整代码和逐行注释。涵盖边界处理、性能优化及异常检测等实战技巧,帮助开发者快速掌握时间序列数据处理的核心技术。

weixin_30872157的博客 124

设置Gridview,Repter...中的linkbutton按钮不可用

假设在Gridview中的分页控件中有linkbutton: 当前第:"> 页 | 一共: ">页

谢彬の优快云专栏 4262

Halcon形状模板匹配实战:inspect_shape_model参数优化指南

本文深入解析Halcon形状模板匹配中inspect_shape_model参数的优化技巧,涵盖NumLevels和Contrast参数的实战应用。通过具体案例展示如何平衡匹配速度与精度,帮助开发者高效调试形状模型,提升工业视觉检测的准确性和效率。

weixin_30342209的博客 618

AR-HMM模型 自回归隐马尔可夫模型

AR-HMM模型 自回归隐马尔可夫模型 数据处理过程 输入的视频数据首先需要被裁剪以适合动物的大小,在这之后考虑到模型建立的目的为行为状态的分类,于是需要消除可能一帧里带有多个动作状态的行为成分,这个过程也就是对帧。对帧之后我们的为了适应模型训练还需要对每一帧的数据进行小波分解(类似傅里叶变换的信号重构),此时数据预处理阶段完成。 信号重构后的数据拥有的特征维度过多,因此需要应用主成分分析法(PCA)来选出对于分类结果贡献度最高的前十个分类特征。至此自回归隐马尔可夫模型的准备工作就完成了。 AR-HMM自

weixin_46263718的博客 2281

Android ListView中嵌入Button/CheckBox后Item点击无效问题解决

在listView中加入了B

淡泊明志,宁静致远 895

FPGA新手避坑指南:Vivado 2020.2里配置PLL IP核,从差分时钟输入到上板实测的全流程

本文详细介绍了在Vivado 2020.2中配置PLL IP核的全流程,包括差分时钟输入、参数设置、仿真验证及上板实测。针对FPGA新手常见的配置错误和硬件连接问题,提供了实用的解决方案和调试技巧,帮助开发者快速掌握时钟管理技术。

weixin_27051161的博客 485

android gridview的点击事件失效,android – GridView.setOnItemClickListener无效

我从2days开始遇到一个问题.我有一个网格视图,我需要显示图像.当我点击网格项时,它必须转到下一个活动.我能够在gridview中显示图像但事情是什么时候我点击它没有响应的项目​​..(OnItemClickListener不工作).我无法在我做错的地方追踪我的问题.package com.logictreeit.mobilezop.fragments;import android.app.Ac...

weixin_32518073的博客 772

PCIe ATS介绍

主机侧使用IOMMU完成设备地址到物理memory地址的转换,以及设备访问权限的检查。但如果所有PCIe设备都在进行DMA操作,则TA(Translation Agent)和ATPT(Address Translation and Protection Table)则会成为瓶颈,从而影响系统的latency。

maxwell2ic的博客 6020

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

GridView点击事件无效的原因

一,今天遇到一个需求,先附图: 在这里用到gridview+adapter去实现, 1.点击添加,添加新的一天,如13天。 2.点击其他的天数,选中这一天并显示红色。 二,在写代码的过程中遇到两个问题: 1.点击添加的时候虽然实现自动添加天数,但比如13天的时,后面的天数依然也可以有点击事件,这个原 通过打log日志去观察,但也并不能理

hustwbyuanyi的博客 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

android gridview 无法响应点击事件,GridView第一个Item点击事件无响应的解决方案

今天在重构IM聊天界面的时候遇到了一个很奇葩的问题,功能区里面嵌套了GridView,但是在点击第一个Item的时候点击事件无响应,真是奇了个怪。 im_new_room_chat.png如上图所示,在点击“图片”图标的时候无响应,但是点击其他选项是可以响应的,由于不知道是哪的代码出现了问题,所以只能针对所有的修改一点点的调试,最终终于发现了比较可疑的代码:@Overridepublic View...

weixin_39922361的博客 901

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

android TextView setEms 方法名字

android TextView setEms 作用是设置名字很奇怪。

JavaLive09的专栏 2万+

android中dialog的dismiss()和cancel()的区别

dismiss() 主要作用是让dialog从屏幕上消失   源码如下: /** * Dismiss this dialog, removing it from the screen. This method can be * invoked safely from any thread. Note that you should not override this

JavaLive09的专栏 1万+

子View获取父容器的引用

getParent();  获取ViewParent 对象。强转成父类容器。

JavaLive09的专栏 1万+

ViewGroup generateLayoutParams() 方法的作用

父容器生成 子view 的布局LayoutParams; y

JavaLive09的专栏 7922

BaseAdapter 刷新数据的方法

BaseAdapter中有两种刷新sh

JavaLive09的专栏 6613

android中改变view位置的几种方法

1. 调用 layout方法 public void layout(int l, int t, int r, int b) { int oldL = mLeft; int oldT = mTop; int oldB = mBottom; int oldR = mRight; boolean changed =

JavaLive09的专栏 6239
上一篇: ViewPager SimpleOnPageChangeListener中回调函数的调用场景
下一篇: LayoutInflater 的inflate(int resource, ViewGroup root, boolean attachToRoot)方法研究
javalive09
博客等级 码龄16年 43粉丝 281原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值