android布局文件加载过程是什么样的

天王盖地虎626 发布于 2015/08/31 09:44
阅读 276
收藏 0

看下这个简单的布局,注意标红的位置,是表示把linearlayout放在父布局的最底部

请问下,系统在加载这个布局文件的时候,到底是如何解析加载的?

是简单的从上往下吗?

如果是从上往下进行解析,然后遇到嵌套布局,继续解析布局中的嵌套布局,直到全部完成

如果是从左到右进行解析,遇到前台布局,继续解析布局中的前台布局,直到全部完成

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   >
      <LinearLayout
            android:id="@+id/bottomLay"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:background="#ffffff"
            android:padding="15dp" >
           
            <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="测试一个简单的问题" />
          </LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="提交" />

</RelativeLayout>

加载中
1
chunquedong
chunquedong

布局文件就是普通的XML文件,XML文件解析有两种方式SAX和DOM。由于文件流的特性,最开始的步骤都是按你说的第一种方式,逐字节解析。在加载到内存中后DOM就可以随机访问了,既可以深度优先也可以广度优先遍历,但为了实现简单一般都是深度优先的。

我估计你想问布局过的过程,而不是XML的解析过程。布局不是在解析阶段完成的,而是在运行时反复执行的。布局开始时先measure一遍,然后doLayou设置位置和大小,最后draw绘制刷新。


返回顶部
顶部