android是怎么根据id查找到控件的 android 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先,你在调用 findViewById 之前,你必然是在 activity 中设置了 setContentView, 或者在 Fragment 中重载了 onCreatedView 方法,对于 findViewById, 他只能使用在 view或者 activity 下,对于 view, 你进行遍历的根节点就是对应的 view, 对于 activity, 你对应的根节点就是你使用 setContentView 初始化的布局当你调用 findViewById 是, android 先对比本身是否具有该 id,是则返回自己,不是则判断自己是否为 ViewGroup, 如果是再对子视图进行遍历,否则返回 null, 遍历时,按照从上到下的顺序一一遍历,只要找到一个节点的 id 为搜索的 id, 则返回这个节点代表的 view, 比如说你的 layout 中有两个相同 id 的 view, 那么返回的必然是最前的那一个 那如果两个id所在的xml布局位于同一层的数(深度相同)那么是返回那一个xml的?或者说它遍历的顺序是先序,后续还是中序?还是说,遍历的顺序是按照viewgroup中xml布局文件的上下顺序?还是实际显示的布局中的上到下,左到右? 那如果两个id所在的xml布局位于同一层的数(深度相同)那么是返回那一个xml的?或者说它遍历的顺序是先序,后续还是中序?还是说,遍历的顺序是按照viewgroup中xml布局文件的上下顺序?还是实际显示的布局中的上到下,左到右?先序,因为系统读取的时候始终是按照你的布局文件从上到下读取,那么无论你的布局层级如何,先出现的控件在遍历时总会有限被读取到 你可以看看findViewById的源码,里面有比较详细的讲解,它会自动遍历当前所在的View tree来寻找对应的控件。 Android 2.3.5系统内置图片Gallery程序无法正常调用 关于ViewFlipper的动态添加问题 Android工程中没有 res\raw目录 lt26i android系统刷机问题 菜鸟求教,关于安卓客户端程序更新问题,高手进 孵化“无线互联网领域未来的领导企业” 代码如何控制设备重启?? Android,请教如何将资源放到指定的文件夹中,通过文件名访问 Android版本更新修改版本号 关于activity启动service mapController = mapView.getController(); 不能用 求android老手指导。。
那如果两个id所在的xml布局位于同一层的数(深度相同)那么是返回那一个xml的?或者说它遍历的顺序是先序,后续还是中序?还是说,遍历的顺序是按照viewgroup中xml布局文件的上下顺序?还是实际显示的布局中的上到下,左到右?
那如果两个id所在的xml布局位于同一层的数(深度相同)那么是返回那一个xml的?或者说它遍历的顺序是先序,后续还是中序?还是说,遍历的顺序是按照viewgroup中xml布局文件的上下顺序?还是实际显示的布局中的上到下,左到右?
先序,因为系统读取的时候始终是按照你的布局文件从上到下读取,那么无论你的布局层级如何,先出现的控件在遍历时总会有限被读取到