怎样android的布局优化加载

如题所述

  在Android开发中,我们常用的布局方式主要有LinearLayout、RelativeLayout、FrameLayout等,通过这些布局我们可以实现各种各样的界面。与此同时,如何正确、高效的使用这些布局方式来组织UI控件,是我们构建优秀Android App的主要前提之一。本篇内容就主要围绕Android布局优化来讨论在日常开发中我们使用常用布局需要注意的一些方面,同时介绍一款SDK自带的UI性能检测工具HierarchyViewer。
  布局原则通过一些惯用、有效的布局原则,我们可以制作出加载效率高并且复用性高的UI。简单来说,在Android UI布局过程中,需要遵守的原则包括如下几点:
  •å°½é‡å¤šä½¿ç”¨RelativeLayout,不要使用绝对布局AbsoluteLayout;
  •å°†å¯å¤ç”¨çš„组件抽取出来并通过< include />标签使用;
  •ä½¿ç”¨< ViewStub />标签来加载一些不常用的布局;
  •ä½¿ç”¨< merge />标签减少布局的嵌套层次;
  由于Android的碎片化程度很高,市面上存在的屏幕尺寸也是各式各样,使用RelativeLayout能使我们构建的布局适应性更强,构建出来的UI布局对多屏幕的适配效果越好,通过指定UI控件间的相对位置,使在不同屏幕上布局的表现能基本保持一致。当然,也不是所有情况下都得使用相对布局,根据具体情况来选择和其他布局方式的搭配来实现最优布局。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-08

下面介绍几种切实有效的方式:

    merge

    顾名思义,就是合并、融合的意思。使用它可以有效的将某些符合条件的多余的层级优化掉。使用merge的场合主要有两处:

     (1) 自定义View中使用,父元素尽量是FrameLayout,当然如果父元素是其他布局,而且不是太复杂的情况下也是可以使用的 

    (2) Activity中的整体布局,根元素需要是FrameLayout

    ViewStub

    (1) ViewStub只能Inflate一次,之后ViewStub对象会被置为空。按句话说,某个被ViewStub指定的布局被Inflate后,就不能够再通过ViewStub来控制它了。所以它不适用     于需要按需显示隐藏的情况。
    (2) ViewStub只能用来Inflate一个布局文件,而不是某个具体的View,当然也可以把View写在某个布局文件中。如果想操作一个具体的view,还是使用visibility属性吧。
    (3) VIewStub中不能嵌套merge标签。(前面好像说过)
    不过这些确定都无伤大雅,我们还是能够用ViewStub来做很多事情。

    include

    制造这个标签纯碎是为了布局重用,在项目中通常会存在一些布局公用的部分,比如自义标题,我们不需要把一份代码Ctrl C, Ctrl V的到处都是,严重违背程序简洁化、模块儿化的设计思想

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网