1.  include标签:

include标签的作用是在一个布局文件中导入另一个布局文件。在开发中经常会有多个页面同时拥有一部分相同的布局,这个时候如果每个布局都把那个部分的代码写一遍就会使得代码重复,浪费了资源。使用include就可以简单的导入相同部分的布局。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="欢迎您使用这款app"
android:textSize="16dp"
android:gravity="center"/>
</LinearLayout>

以上代码是一个多页面通用的布局,给它命名为include.xml,接下来在主页面activity_main.xml中引用它:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
> <include layout="@layout/include"/> //使用include引用了子布局 </LinearLayout>
于是在主页面中便看到了include页面中的内容。 2. merge标签:
merge标签的作用是减少布局嵌套的层次。比如刚才那个例子中,父布局与子布局都是使用的线性布局LinearLayout,这样在代码中
等于重复写了两次的布局声明,产生了不必要的代码,这个时候就可以使用merge标签。
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="欢迎您使用这款app"
android:textSize="16dp"
android:gravity="center"/>
</merge>
以上是修改过后的include.xml。在父布局中导入了这个页面后,这个页面就得到了父布局的LinearLayout布局,所以显示
效果和之前的代码相比没有任何区别,但是精简了代码,节省了系统资源。
3.Viewstub标签:
Viewstub标签的作用是让布局在被加载的时候才会去占用资源,而INVISIBLE状态(不可见状态)下布局不会被绘制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ViewStub
android:id="@+id/include1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout="@layout/include"/>
</LinearLayout>
以上是一个Viewstub的例子,运行程序后会发现Viewstub里的布局include.xml并没有被显示出来,说明Viewstub默认状态
下是会隐藏内容的,然后我们将它改为可视状态:
package com.example.von.include;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View; public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.include1).setVisibility(View.VISIBLE); //利用这个方法将include1改为可视状态
}
}
这时再次运行程序,会发现include.xml的内容成功显示了出来。

关于Android布局优化的代码使用的更多相关文章

  1. 【转】Android布局优化之ViewStub

    ViewStub是Android布局优化中一个很不错的标签/控件,直接继承自View.虽然Android开发人员基本上都听说过,但是真正用的可能不多. ViewStub可以理解成一个非常轻量级的Vie ...

  2. Android布局优化之include、merge、ViewStub的使用

    本文针对include.merge.ViewStub三个标签如何在布局复用.有效减少布局层级以及如何可以按需加载三个方面进行介绍的. 复用布局可以帮助我们创建一些可以重复使用的复杂布局.这种方式也意味 ...

  3. 转:Android布局优化

    categories: Android 在Android开发中,我们常用的布局方式主要有LinearLayout.RelativeLayout.FrameLayout等,通过这些布局我们可以实现各种各 ...

  4. [旧][Android] 布局优化

    备注 原发表于2016.05.21,资料已过时,仅作备份,谨慎参考 前言 最近在编写布局时,发现这一块是有很多值得深入学习的地方的.毕竟应用开发,界面展示是十分重要的部分.另外在开发时,为自己的代码做 ...

  5. Android布局优化:include 、merge、ViewStub的详细总结

    版权声明:本文出自汪磊的博客,未经作者允许禁止转载. 本篇博客主要是对上篇博客的补充Android性能优化之UI渲染性能优化, 没有什么新东西,觉得应该是都掌握的玩意,写出来也只是自己做个小小的总结. ...

  6. [Android]Android布局优化之<include />

    转载请标明:转载于http://www.cnblogs.com/Liuyt-61/p/6602891.html -------------------------------------------- ...

  7. Android成长日记-Android布局优化

    Android常用布局 1. LinearLayout(线性布局) 2. RelativeLayout(相对布局) 3. TableLayout(表格布局) 4. AbsoluteLayou(绝对布局 ...

  8. android 布局优化常用技巧

    android对多个模块都要是要的UI逻辑的致辞除了fragment之外,没有别的东西可以支持了, include,merge,viewstub只能支持公用的ui,但是这个通用支持不能包含逻辑(jav ...

  9. Android布局优化

    前言 本篇文章为Android优化的布局部分,该部分应该是Android中很重要的,无论是在自定义控件中,还是在简单的书写布局时,都应该尽量遵循一些优化原则,这样布局的绘制效率才会更高,体验才能更好. ...

随机推荐

  1. [mysql]错误解决之"Failed to start MySQL Server"

    最近又开始倒腾mysql了,遇到了一个以前没有见过的问题. 问题如下: 百度了好久,发现写的文章都千篇一律,解决办法也都几乎是一样的,然而在我这里一点儿用都没有. 所以FQ看了看外面的世界,终于找到了 ...

  2. C++入门篇一

    双冒号(::)的作用:作用域运算符,全局作用域 void LOL::game1(){//在LOL命名空间下面的game1 cout << "LOL游戏开始" <& ...

  3. vector 的用法--------------自绘资源

    创建 命名 选择根元素 当然你也可以选择其他元素 属性介绍vector 元素 name:定义该矢量图形的名字.通过名字找到这个矢量图width,height:定义该矢量图形的固有宽高(必须的,矢量图内 ...

  4. AOP注解使用详解

    AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点, ...

  5. klearn.preprocessing.PolynomialFeatures学习

    多项式特征处理 class sklearn.preprocessing.PolynomialFeatures(degree=2, interaction_only=False, include_bia ...

  6. vue ssr github 项目及其 文章

    https://github.com/Liao123/vue-js-webpack-ssr  这个项目可以完美运行  npm run start 是运行

  7. html基础技巧:点击、placeholder、文本、字体、清楚浮动

    点击处理: 消除a标签点击后的边框,颜色(background:#fff) 1:a:focus{outline:none;} button去除边框 1:border:none 2:border:0px ...

  8. CSS之垂直对齐

    vertical-align: baseline 默认.元素放置在父元素的基线上. sub 垂直对齐文本的下标. super 垂直对齐文本的上标 top 把元素的顶端与行中最高元素的顶端对齐 text ...

  9. day14.生成器进阶,推导式

    生成器中取值的三种方法 方法1:next() 方法2:for 循环 方法3:数据类型的强制转换 def func(): for i in range(20): yield '赛车*{}'.format ...

  10. python之psutil模块(获取系统性能数据)

    psutil模块 1.介绍 psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等) ...