Android中焦点切换的技巧

本文介绍了在Android布局中如何控制焦点在多个控件间切换。重点讲解了父控件通过`android:descendantFocusability`属性设置焦点顺序,以及子控件间焦点切换的两种方法:使用nextfocus属性和父控件遍历方式。
摘要由CSDN通过智能技术生成

欢迎浏览和转载 Canon_Lee 的原创博客
http://blog.csdn.net/ljn951/article/details/46897281
我写文章写得时候会尽量写得通俗和基础,所以大神请见谅

在Android的布局中,控制焦点在多个控件之间切换一直是一个重要的问题,因为如果一个控件没有获得焦点,那么它对应的事件响应也就不会被触发。

首先,是父控件和子控件之间焦点的控制,我们知道当一个点击事件发生的时候,父控件和子控件同样都可能会接收到这个事件。想要按照我们的要求来指定他们的获取顺序和权限,就要在父控件中设置 android:descendantFocusability 。

这个属性值是对于父控件(ViewGroup)而言的,所以几个选项的描述也是针对父控件,分别是先于子控件获得焦点、后于子控件获得焦点、获得焦点后拦截。
android:descendantFocusability =
beforeDescendants 先于子控件获得焦点
afterDescendants 后于子控件获得焦点
blocksDescendants 获得焦点后拦截

而在子控件与子控件之间的焦点切换,我这里也介绍两种方法。很多时候多个子控件会在布局中占据相同的位置(通过FrameLayout和RelativeLayout来实现),所以要控制它们的焦点切换单单靠点击动作可不够。


第一种切换方法,利用寻找nextfocus的方法进行切换。
Android中有nextfocus这个属性,并且分为六个方向。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值