android点击FrameLayout、LinearLayout等父布局没响应的原因以及解决方案

简介: android点击FrameLayout、LinearLayout等父布局没响应的原因以及解决方案

问题描述

在平时开发的过程中,有时候会遇到FrameLayout或者LinearLayout父布局点击没反应,原因就是FrameLayout或者LinearLayout 里边包裹的子控件比较多,比如有TextView、ImageView、Button、CheckBox等控件,在你点击父布局时如果没反应, 绝大部分原因就是这些子控件响应了点击事件,所以就会导致你的FrameLayout或者LinearLayout父布局点击没反应。

示例

代码部分

原因分析

上面这个布局,很显然是一个LinearLayout套了一个ImageButton和TextView,正常逻辑来说 不管我是点到图标了还是点到Setting文字了都会触发事件 从而做出相应的业务逻辑,但是现在的情况是我点了图标没有反应,是什么原因呢?


是因为子控件响应了点击事件,所以导致了点击LinearLayout父布局没反应。


那么为什么会发生这种问题呢,原因呢是因为在处理click事件的时候,默认情况下,首先是由父元素去捕捉(不会立即执行),如果子元素有响应click事件的能力的话,父元素就不会处理click事件,会直接将捕捉到的click事件交给子元素去处理。所以就出现了“点击父布局没反应”的这种情况。


下面就给大家说两种比较常用的解决方案

解决方案

方案一

在所有子控件的xml中加上:android:clickable=“false” (设置控件不可点击)

当把子控件的属性设为android:clickable="false"的时候,子控件就没有处理click事件的能力了,父布局就会自己来执行点击事件,而不再把click事件交给子控件了。

代码

方案二

把所有子控件都监听起来,不管点击哪个都做出同样的业务逻辑处理

代码

目录
相关文章
|
6天前
|
安全 Shell Android开发
Android系统 init.rc sys/class系统节点写不进解决方案和原理分析
Android系统 init.rc sys/class系统节点写不进解决方案和原理分析
40 0
|
6天前
|
开发框架 搜索推荐 .NET
Android之ListActivity 布局与数据绑定
Android之ListActivity 布局与数据绑定
11 0
|
6天前
|
XML Android开发 数据格式
Android六大布局
Android六大布局
39 1
|
6天前
|
存储 传感器 Android开发
构建高效Android应用:从优化布局到提升性能
【5月更文挑战第13天】 在竞争激烈的移动应用市场中,一个高效的Android应用不仅需要具备直观的用户界面和丰富的功能,还要确保流畅的性能和快速的响应时间。本文将深入探讨如何通过优化布局设计、减少资源消耗以及利用系统提供的API来提升Android应用的性能。我们将分析布局优化的策略,讨论内存使用的常见陷阱,并介绍异步处理和电池寿命的考量。这些技术的综合运用将帮助开发者构建出既美观又高效的Android应用。
|
6天前
|
Android开发 容器
Android Layout 布局
Android Layout 布局
11 1
|
6天前
|
搜索推荐 Android开发
自定义Android标题栏TitleBar布局
自定义Android标题栏TitleBar布局
11 1
|
6天前
|
XML Android开发 数据格式
Android五大布局对象---FrameLayout,LinearLayout ,Absolute
Android五大布局对象---FrameLayout,LinearLayout ,Absolute
|
6天前
|
Android开发
Android中Glide加载Https图片失败的解决方案
Android中Glide加载Https图片失败的解决方案
19 1
|
6天前
|
安全 编译器 API
Android HAL深入探索(5): 调试HAL报错与解决方案
Android HAL深入探索(5): 调试HAL报错与解决方案
47 1
|
6天前
|
存储 应用服务中间件 网络安全
Android 网络链接稳定性测试解决方案
Android 网络链接稳定性测试解决方案
23 0