Android常用布局

1. LinearLayout(线性布局)

2. RelativeLayout(相对布局)

3. TableLayout(表格布局)

4. AbsoluteLayou(绝对布局)

5. FrameLayout(帧布局)

低--------------使用量------------------à高

4->3->5->1->2

Android布局原则

(1) 尽量多使用LinearLayout和RelativeLayout,不要使用AbsoluteLayout

(2) 在布局层次一样的情况下,建议使用LinearLayout代替RelativeLayout,因为LinearLayout性能要稍高一些

(3) 将可复用的组件抽出来并通过include便签使用

(4) 使用ViewStub标签来加载一些不常用的布局

(5) 使用merge便签减少布局的嵌套层次

Eg:

(一) <include/>的使用

作用:将共同的组件抽取出来单独放在一个xml文件中,然后使用include标签导入共同布局

效果:提高UI的制作和复用效率,也能保证制作的UI布局更加规整和易维护

Op:<include layout=”@layout/common_title”/>

在布局文件中引入这个相同的布局即可

(二) 使用merge合并UI布局

作用:合并UI布局,使用该标签能降低UI布局的嵌套层次

场景:1.布局根节点是FrameLayout且不需要设置background或padding等属性,可以使用merge代替

2.某布局作为子布局被其他布局include时,使用merge当做该布局的顶节点,这样再被引入时顶节点会自动被忽略

(三) 使用ViewStub惰性加载

作用:ViewStub标签同include标签一样可以用来引入一个外部布局,不同的是,ViewStub引入的布局默认不会扩张,既不会占用显示也不会占用位置,从而在解析Layout时节省cpu和内存

Android成长日记-Android布局优化的更多相关文章

  1. Android成长日记-五大布局

    1. 五布局之线性布局LinearLayout 特点:它包含的子控件将以横向或竖向的方式排列 ps:android:gravity=”center|bottom”(gravity允许多级联用) Tip ...

  2. Android成长日记-Android四大组件之Service组件的学习

    1.什么是Service? Service是Android四大组件中与Activity最相似的组件,它们都代表可执行的程序,Service与Activity的区别在于:Service一直在后台运行,它 ...

  3. Android成长日记-Android监听事件的方法

    1. Button鼠标点击的监听事件 --setOnClickListener 2. CheckBox, ToggleButton , RadioGroup的改变事件 --setOnCheckedCh ...

  4. 浅谈Android样式开发之布局优化

    引言 今天我们来谈一下Android中布局优化常用的一些手段.官方给出了3种优化方案,分别是</include>.</viewstub>.</merge>标签,下面 ...

  5. Android最佳性能实践(四)——布局优化技巧

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43376527 在前面几篇文章其中.我们学习了怎样通过合理管理内存,以及高性能编码技 ...

  6. Android成长日记-使用PagerAdapter实现页面切换

    Tip:此方式可以实现页面切换 1. 创建view1.xml,view2.xml,view3.xml,main.xml 在main.xml中创建 <android.support.v4.view ...

  7. Android成长日记-使用GridView显示多行数据

    本节将实现以下效果 Ps:看起来很不错的样子吧,而且很像九宫格/se ----------------------------------------------------------------- ...

  8. Android成长日记-使用ToggleButton实现灯的开关

    案例演示 此案例实现思路:通过ToggleButton控件,ImageView控件实现 ---xml代码: <!-- textOn:true textOff:falase[s1] --> ...

  9. Android成长日记-仿跑马灯的TextView

    在程序设计中有时候一行需要显示多个文字,这时候在Android中默认为分为两行显示,但是对于必须用一行显示的文字需要如何使用呢? ----------------------------------- ...

随机推荐

  1. Iptables 报错Couldn't load target `ACCET':/lib64/xtables/libipt_ACCET.so: cannot open shared object file

    [root@xxxx ~]# /etc/init.d/iptables restart iptables: Setting chains to policy ACCEPT: filter nat [ ...

  2. 细细品味Storm_Storm简介及安装

    Storm是由专业数据分析公司BackType开发的一个分布式实时数据处理软件,可以简单.高效.可靠地处理大量的数据流.Twitter在2011年7月收购该公司,并于2011年9月底正式将Storm项 ...

  3. 求解区间最值 - RMQ - ST 算法介绍

    解析 ST 算法是 RMQ(Range Minimum/Maximum Query)中一个很经典的算法,它天生用来求得一个区间的最值,但却不能维护最值,也就是说,过程中不能改变区间中的某个元素的值.O ...

  4. learning to rank

    Learning to Rank入门小结 + 漫谈 Learning to Rank入门小结 Table of Contents 1 前言 2 LTR流程 3 训练数据的获取4 特征抽取 3.1 人工 ...

  5. Uwp Windows10获取设备位置(经纬度)

    先在Package.appxmanifest中配置位置权限 2. 创建LocationManager类 using System; using System.Collections.Generic; ...

  6. PHP后台代码 及 iOS客户端--AF实现上传视频

    //视频转换为MP4 //转码操作... _hud.mode = MBProgressHUDModeIndeterminate; _hud.labelText = @"转码中..." ...

  7. Linux下安装libiconv使php支持iconv函数

    libiconv组件安装好了可以让我们php支持iconv函数了,这个函数的作用就是字符编码强制转换了,下面和111cn小编一起来看一个Linux中安装libiconv使php支持iconv函数的例子 ...

  8. SharePoint Backup

    这里主要介绍使用admin center直接backup: 1.浏览器进入管理中心,选择备份: 2.按需要选择需要备份的内容 3.选择备份位置,然后等待服务器备份完成(windows explore中 ...

  9. 可以ping通,但是不能connect

    实测有效的解决方法: 通过minicom串口连接板子: su stop adbd start adbd 如果再不行,就在终端输入 adb kill-server adb start-server 参考 ...

  10. Jenkins的maven工程打包的时候怎么指定不同环境的配置文件

    http://outofmemory.cn/code-snippet/6643/maven-profile-define-enviroment-package 在打包的时候我们添加上 这里我们指定配置 ...