• Android布局优化思考


    一、关于RelativeLayout和LinearLayout的使用

    由源码可以知道,RelativeLayout需要对其子View进行两次measure过程,而LinearLayout只需一次measure过程,我们知道,onMeasure的耗时越长效率就越低,但是如果LinearLayout中有weight属性,也需要进行两次measure,即便如此,仍然会比RelativeLayout的情况好一些。

    总体原则:减少布局层次,加快渲染速度。

    当线性布局和相对布局均可以实现时,优先使用线性布局LinearLayout,如果使用的是相对布局RelativeLayout,尽量避免RelativeLayout嵌套RelativeLayout,并且尽量使用padding代替margin。

    二、<include />的使用

    <include />标签可以在一个布局中引用另外一个布局,实现布局重用。比如共同的标题栏(title.xml),只要加上如下代码即可重用。

    <include layout=“@layout/title” />

    三、<merge /> 的使用

    <merge />标签可以减少视图的层级结构。比如说,如果主布局是线性布局,include进来的也是线性布局,这时候include进来的线性布局就是多余的,可以用merge标签代替(重用布局的父布局使用merge),仍使用include引入布局。

    四、ViewStub的使用

    ViewStub是一个轻量级的View,宽高均为0,实现View的延迟加载,避免资源的浪费,减少渲染时间,在需要的时候才进行加载。比如提醒框的使用。

    五、Space控件的使用

    Space控件占据一定的空间,但是不显示任何东西,可用于行间隔。

    六、TextView的使用

    TextView可同时显示文字和图片;TextView的属性lineSpacingExtra可设置行间距。

    七、LinearLayout线性布局

    LinearLayout的属性divider可设置分割线,相关属性:dividerPadding、showDividers。

    总结就是进步,哪怕是一点点。 Github地址:https://github.com/chenxkang
  • 相关阅读:
    PS 灰度处理图片 然后翻转黑白颜色
    其它 门 修改密码
    uview组件部分样式丢失.u-flex样式丢失
    微信公号号-模板通知问题
    background-image详细属性
    VS code更换编辑器自定义背景图片
    console.log显示数据与展开运算符显示数据不一致
    项目展示
    ASP.Net Core解读依赖注入
    注意力增强卷积 代码解读
  • 原文地址:https://www.cnblogs.com/chenxkang/p/6589674.html
Copyright © 2020-2023  润新知