Android布局优化——include、merge和ViewStub标签
2018-03-29 18:48
736 查看
1.include标签
标签描述:可以允许在一个布局当中引入另外一个布局,实现布局的复用,精简布局代码。例子:Activity常用top栏
代码实例:
引入布局:titlebar.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:text="Back" /> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="Title" android:textSize="20sp" /> 4000 <Button android:id="@+id/done" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:text="Done" /> </RelativeLayout>
include使用
<?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/titlebar" /> ...... </LinearLayout>
2.merge标签
标签描述:merge标签是作为include标签的一种辅助扩展来使用,其主要作用是为了防止在引用布局文件时产生多余的布局嵌套。当include标签引入一个带merge标签的布局时,merge标签内包含的内容会直接填充到include的位置,不会再添加任何额外的布局结构。
代码实例:
带merge标签的布局:merge_layout.xml
<?xml version="1.0" encoding="utf-8"?> <merge xmlns:android="http://schemas.android.com/apk/res/android"> <Button android:id="@+id/ok" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:text="OK" /> <Button android:id="@+id/cancel" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="10dp" android:text="Cancel" /> </merge>
include引入merge标签布局:
<?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" > <EditText android:id="@+id/edit" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="10dp" android:hint="Edit something here" /> <include layout="@layout/ok_cancel_layout"/> </LinearLayout>
3.ViewStub标签
标签描述:ViewStub虽说也是View的一种,但是它没有大小,没有绘制功能,也不参与布局,资源消耗非常低,将它放置在布局当中基本可以认为是完全不会影响性能的。其中的布局只有在需要显示时才会加载,不显示就不加载,所谓按需加载。
代码实例:
带有ViewStub布局的代码:
<?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" > <EditText android:id="@+id/edit" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="10dp" android:hint="@string/edit_something_here" /> <Button android:id="@+id/more" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_marginRight="20dp" android:layout_marginBottom="10dp" android:text="More" /> <ViewStub android:id="@+id/view_stub" android:layout="@layout/every_layout" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
其中android:layout=”@layout/every_layout” ,可以为常见的任意布局代码。
ViewStub显示代码:
((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE); // 或者 View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate();
参考文档
Android最佳性能实践(四)——布局优化技巧相关文章推荐
- Android布局优化几个重要标签的使用include、merge、ViewStub、requestFocus
- Android 布局优化 include,merge,viewstub标签
- android 布局优化标签<include/>、<merge />、<ViewStub />
- Android最佳性能实践——布局优化技巧之<include>、<merge>标签及仅在需要时才加载布局的:ViewStub
- Android使用include/merge/ViewStub优化布局
- Android布局优化之ViewStub、include、merge使用与源码分析
- android开发之布局优化之include、ViewStub、merge使用与源码分析
- Android布局优化之ViewStub、include、merge使用与源码分析
- Android布局优化之Merge Include ViewStub使用与源码分析
- Android布局优化include 、merge、ViewStub的应用
- Android布局优化之ViewStub、include、merge使用与源码分析
- Android布局优化之ViewStub、include、merge使用与源码分析 .
- Android——Android布局优化(include、ViewStub、merge)
- android开发布局优化—include、merge、viewstub源码分析总结
- Android布局优化之Merge、Include、ViewStub使用与源码分析
- Android 布局优化之——include、merge 、ViewStub
- 【Android布局】布局优化之ViewStub、include、merge使用与源码分析
- Android布局优化之Merge Include ViewStub使用与源码分析
- Android布局优化----ViewStub、include、merge
- Android之布局优化include、merge 、ViewStub