文档章节

android点击事件在不同级别view中的优先级问题

JayPark不作死
 JayPark不作死
发布于 2014/10/13 10:22
字数 363
阅读 2229
收藏 1

开发中很常见的一个问题,当项目中的listview不仅仅是简单的文字,Item中存在诸如 ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),可能会发生点击每一个 item的时候没有反应,无法获取的焦点。 这是因为此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。

   这时候就可以使用descendantFocusability属性来解决,他可以设置一个控件如何处理触摸事件,该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。

   属性的值有三种:

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

   用法示例,下面的LinearLayout会屏蔽其中button的点击事件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<LinearLayout
     android:id= "@+id/titlebar_right_tab"
     android:layout_width= "55dip"
     android:layout_height= "fill_parent"        
     android:gravity= "center"
     android:background= "@drawable/selector_tab"
     android:descendantFocusability= "blocksDescendants"
>
     <Button
         android:layout_width= "50dip"
         android:layout_height= "50dip"
         android:text= "按钮"
     />     
</LinearLayout>


   当然对于重写了ontouchevent 或者 onintercepttouchevent 方法的自定义控件来说,这个属性可能不会起作用。


本文转载自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0610/1622.html

共有 人打赏支持
JayPark不作死
粉丝 15
博文 51
码字总数 13622
作品 0
苏州
程序员
Android 机制篇 - 事件分发机制超详解(🔥🔥🔥🔥🔥🔥🔥🔥)

Android 虽然不是四大组件,但其并不比四大组件的地位低(涉及面的广度和深入甚至比四大组件还复杂🔥)。而View的核心知识点“事件分发机制”则是不少刚入门同学的拦路虎(1、项目中处处遇...

Pepsimaxin
07/12
0
0
10分钟了解Android的事件分发

什么是事件分发? 大家知道Android中的视图是由一个个View嵌套构成的层级视图,即一个View里包含有子View,而这个子View里面又可以再添加View。当用户触摸屏幕产生一系列事件时,事件会由高到...

codeGoogle
05/21
0
0
Android引入广播机制的用意。单线程模型Message、Handler、Message Que.

注册广播有几种方式,这些方式有何优缺点?请谈谈Android引入广播机制的用意。 Android 的广播机制 在 Android 里面有各种各样的广播,比如电池的使用状态,电话的接收和短信的接收都会产生一...

一别经年
2014/03/15
0
0
android对OnTouchListener、OnClickListener等事件响应的研究

前几天遇到一个小问题,就是给listview添加onItemClickListener、onItemLongClickListener、onTouchEvent三种事件的 时候,只执行了onTouchEvent事件,而其他的两个事件未执行,解决办法:在...

雨焰
2012/06/19
0
1
安卓自定义View进阶-事件分发机制原理

安卓自定义View进阶-事件分发机制原理 之前讲解了很多与View绘图相关的知识,你可以在 安卓自定义View教程目录 中查看到这些文章,如果你理解了这些文章,那么至少2D绘图部分不是难题了,大部...

猴亮屏
05/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

(三)Nginx配置·续

概述 前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置 主要是以下三个 1.Nginx访问日志 2.Nginx日志切割 3.静态文件不记录日志和过期时间 Nginx访问日志 1.先看看...

杉下
今天
1
0
jquery创建类似于java的map

var map = {}; // Map map = new HashMap(); map[key] = value; // map.put(key, value); var value = map[key]; // Object value = map.get(key); var has = key in map; // boolean has = ......

SuperDabai
今天
0
0
java大数据转换16进制转10进制

public static void main(String[] args) {String hex = "0xdbf3accc683297cf0000";BigInteger amount = new BigInteger(hex.substring(2), 16);System.out.println(amount);......

任梁荣
昨天
2
0
OSChina 周六乱弹 —— 目测我们程序员丁克的几率不大

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @真Skr小机灵鬼儿:8.13分享Jocelyn Pook/Russian Red的单曲《Loving Strangers》 《Loving Strangers》- Jocelyn Pook/Russian Red 手机党少...

小小编辑
昨天
15
4
TypeScript基础入门 - 函数 - 剩余参数

转载 TypeScript基础入门 - 函数 - 剩余参数 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.2.1 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能...

durban
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部