初步认识view组件焦点切换原理
- 博客分类:
- 技术杂绘
这段时间因为自己要实现一套组件焦点切换机制,今天认真研究了一下Android的view组件是如何切换焦点的。Android'view组件的切换的接口是focusSearch(View focused, int direction), 它是通过FocusFinder这个类来实现的,也就是把整个view切换逻辑都搬到了这个类里,这是个好主要,不至于让view过分臃肿(虽然已经很庞大了...)。FocusFinder会首先会通过view的getFocusables(int direction)方法把所有focusable的view收集起来,貌似这个direction没有什么作用,然后通过offsetDescendantRectToMyCoords(View descendant, Rect rect)把这些view组件的坐标转化为同一坐标系上,接着就是判断当前focused组件上下左右4个方向下一组件是谁了。
Android'view组件很多方法都是交给它的parent来实现,而parent由交给上一级parent, 直到最后的ViewRoot, 比如requestChildFocus(), clearChildFocus() , requestLayout(), invalidate()方法等,ViewRoot才是对它们真正的实现,也就是方法调用由下而上,而产生的变化由上而下,很有层次感。
发表评论
-
有关不调用库函数的字符串操作!
2012-07-06 09:52 707此博客仅作工作、学习,以及技术共享、交流之用。 你可以以 ... -
#笔试#字符串 匹配 正则表达式 C++
2012-07-06 09:46 862同学去上海同济城市规划设计研究院时要求上机写的题目 写 ... -
详细设计文档规范
2012-07-06 09:30 669i am now in university(HI ... -
模拟Google首页(dwr实现ajax) 弹出补全搜索结果
2012-07-05 20:45 910上周末听了在用友工作的两个学长的一个小讲座,虽然时间不长, ... -
Flex 调用WEBService 接口实现天气预报功能.
2012-07-02 12:47 638height="364" ... -
Flex做的颜色器
2012-07-02 12:47 553此效果用对象的toString()方法来格式化输出字符串类 ... -
flex LineChart 的demo
2012-07-02 12:47 600... -
[ActionScript3.0][My flex]读书笔记四之 图标模块应用实例
2012-07-02 12:47 5401.chartdata.xml 2.MyCo ... -
flex显示数字时钟和日期
2012-07-02 12:47 632private function init():void{ ... -
Flex代码覆盖率测试工具
2012-07-01 10:11 760lex代码覆盖率测试工具 作者:忙碌命 1.支持函 ... -
Event propagation事件传播
2012-07-01 10:11 683当事件被触发时,F ... -
Flex FileReference 在Firefox 浏览器情况下的异常情况
2012-07-01 10:11 894Question: Flex 3.5 或 Flex 4 + ... -
flex学习-----事件机制的工作流程
2012-07-01 10:11 5198.2 事件机制的工作流程 8.2.1 关于事件流 ... -
Flex事件机制一
2012-07-01 10:11 500一:事件流机制 由于OOP编程将程序看成一个个对象、 ... -
Flex缓存客户端
2012-06-30 16:36 497Flex缓存客户端 2010年11 ... -
flex草芥回收机制.
2012-06-30 16:36 486flex草芥回收机制. 2011年07月19日 原文Un ... -
Flash Game Development with Flex and Actionscript(一)
2012-06-30 16:36 336Flash Game Development with Fle ... -
使用Flex和Actionscript开发Flash游戏―(十)
2012-06-30 16:36 259使用Flex和Actionscript开发 ...
相关推荐
Android ViewFlipper/ViewSwitcher/ViewPager/VerticalViewPager/ViewFlow用法案例实现 博客地址: http://blog.csdn.net/yelangjueqi/article/details/70239345
微信小程序 | 多个按钮或VIEW,点击改变状态 简易的实现方法实现效果:背景图片:.wxml文件view plaincopyviewclass="chose-txt"data-price="{{item.price}}"data-id="{{index}}"bindtap="choseTxtColor"style="{{in...
本示例演示以动画方式切换View的组件ViewFlipper
Vmware Horizon View 6.0全套组件下载地址。Vmware Horizon View 6.0全套打包下载包含 VMware-viewconnectionserver-x86_64-6.0.0-1884746.exe VMware-viewcomposer-6.0.0-1884350.exe VMware-viewagent-6.0.0-...
安卓Android源码——SurfaceView添加组件view不被组件覆盖.zip
android\用户交互View组件学习android\用户交互View组件学习android\用户交互View组件学习android\用户交互View组件学习android\用户交互View组件学习
Vue router-view和router-link的实现原理 使用 <div id="app"> 首页</router-link> 关于</router-link> <router-view a=1><router-view/> </div> router-view组件 export default { //函数式组件没有...
小程序自定义组件可滑动切换选项卡tab-view 1、可点击tab与左右滑动切换 2、线条游标位置宽度模式可设置 3、可自行更改主题样式 4、公开切换监听和滑动到底事件
微信小程序第二章 基础组件view组件
AndroidSurfaceView添加组件view不被组件覆盖.zip
struts2的View组件 struts2的View组件,最新 PPT教程
事务原理MVCC、Readview和行锁原理分析直播中(1).zip事务原理MVCC、Readview和行锁原理分析直播中(1).zip事务原理MVCC、Readview和行锁原理分析直播中(1).zip事务原理MVCC、Readview和行锁原理分析直播中(1).zip事务...
ios应用源码之效果不错的view视图滑动切换效果 .
基于SYSTEMVIEW通信原理实验报告北邮通信原理实验
微信小程序第二章 基础组件scroll-view组件
微信小程序第二章 基础组件pick-view组件
微信小程序第二章 基础组件cover-view组件
react-native-view是React Native的轻量级View组件
android 实现 动态增加 view 需要的学习 本人亲测 可以运行
用Fragment+Viewpager+BottomNavigationView实现界面切换,界面只有三个Fragment,可自行添加修改