您的位置:首页 > 移动开发 > Android开发

Android布局优化 之 <merge>标签简单使用

2018-01-04 15:36 429 查看

1.为什么要使用
<merge>

为了避免嵌套过多无用布局,嵌套的布局会让View树的高度变得越来越高,应该尽量减少布局的层级来优化布局。

2.什么情况下使用
<merge>

1.如果本打算用FrameLayout作为界面的根布局时,要用
<merge>
标签作为根节点,因为View树的ContentView本身就是个FrameLayout,如图:

2.如果打算用RelateLayout或Linearlayout作为界面根布局时,界面中某些可复用的或逻辑独立的布局用
<include>
导入,
<include>
导入的布局可以考虑用
<merge>
作为根节点。现在有个问题:
<merge>
根节点内的控件怎么布局呢?

<merge>
根节点内的控件布局取决于
<include>
这个布局的父布局是哪个布局:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_gravity="center_horizontal"
android:text="ONE" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_gravity="center_horizontal"
android:text="TWO" />
</merge>


父布局是RelateLayout时:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.android.merge.MergeInRelateLayoutActivity">
<include layout="@layout/merge_in_layout"/>
</RelativeLayout>


<merge>
标签内的控件就按照相对布局排列

父布局是LinearLayout时:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/merge_in_layout" />
</LinearLayout>


<merge>
标签内的控件就按照线性布局排列
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: