Android 布局优化

一.合用weightSum属性和layout_weight属性

    实例:

<LinearLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="horizontal"
    android:weightSum="1">
    <Button
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_weight="0.5"/>
</LinearLayout>

    实例实现效果,Button位于屏幕正中心。

    其中LinearLayout中weightSum属性表示其内部所有的子视图的weight比例总和为1。

    Button的宽度值为0dp,因此需要根据weightSum属性决定Button的width。

    Button的layout_weight属性值决定Button讲占据LinearLayout的属性。

    

二.根据屏幕的宽度,动态设置控件高度


三.公用布局使用<include/>标签

四.ViewStup是实现延迟加载视图的优秀类

    使用ViewStub布局来设置仅需要显示时的视图。如数据为空时的提示布局。

    inflatedId属性是调用inflater()或setVisibility()方法,返回的ID是被填充的View的ID。

五.绘制布局过程:

    绘制布局由两个遍历过程组成:

    测量过程:由measure(int, int)方法完成,该方法从上到下遍历视图树。在递归遍历中,每个视图都会向下层传递尺寸和规格。当该方法执行完成后, 每个视图都保存了各自的尺寸信息。

    布局过程:layout(int, int, int, int)也是完成忧伤而下遍历视图树,在遍历过程中,每个父视图通过测量过程的结果定位所有子视图的位置信息。




你可能感兴趣的:(UI,android)