2019日更挑战(二),android-聊聊写布局(二)

瞎扯

第二天,继续
接上篇,上篇主要简单聊了下分析布局
今天还是差不多,优化布局.

优化布局:

就说说我知道的一些,欢迎补充

1.减少嵌套

这点上篇就讲过了,
再提是因为这个的重要性吧,

安卓的嵌套大致两种.
  • 列表嵌套

    这种呢.首先要相信一点.同向的情况下,90%的列表设计都是可以一个RecyclerView搞定的.
    如果非要嵌套呢.那么嵌套RecyclerViewadapter,一定要注意缓存,不要每次
    onBindViewHolder的时候都去重新创建一次,

    纵向套横向其实算不上嵌套.

    当然,还有事件冲突,所以,不到万不得已,不要去嵌套,该怼的设计就得怼.

  • 容器嵌套.

    还是上篇提到的,LinearLayout,RelativeLayout等等疯狂嵌套.
    然后页面渲染卡的一笔,然后被人吐槽,安卓卡死.

    好在现在出了约束布局CoordinatorLayout,虽然我也不大用,因为用不上.不过是优化布局的神器.
    性能上比RelativeLayout更好.还能做一些RelativeLayout不好做的事.
    最重要的是它对屏幕的适配性.


2 .背景

对,就是背景.
我见过很多,现在还喜欢用.9图做背景.真的是不推荐

优化的地方:

(1).不要重复设置背景:

这是常常会被忽略的一件事情.经常会等到做布局优化的时候才会去改.
比如一个列表页面:


2019日更挑战(二),android-聊聊写布局(二)_第1张图片
image.png


    
    

然后列表条目的布局:

    

这种写法我是见过的..

然后打开查看过度绘制,整个页面都是红的.

这里一共重复了4次背景.

  • 第一层,window背景
  • 第二层.RelativeLayout背景
  • 第三层.ReyclerView背景
  • 第四层.TextView背景

实际上.除了TextView,其他的背景都可以去掉.

去掉window背景

@android:color/transparent

(2).尽量不要用图片做控件背景.

除了启动页.和部分标签性的背景,还有什么地方是值得用图片做背景的

如果只是为了一个边线,


image.png

image.png

这些,只是一个shape就解决了.

我基本很少找UI切背景.只有icon会找UI, .9已经1年多没用过了吧.

如果允许,最好使用svg来作为icon和背景.
一.节省app大小,
二.不会失真.如果是图片做背景.失真是很的难看.
三.节省内存.图片可是很占内存的.

总结就是能用shape的或者canvas画的,绝不用图片,搞不定也最好用svg来搞.

(3)ViewStub merge

这两个东西,优化上来说,是很常用的

  • ViewStub
    相当于一个占位符.必须调用了inflate 和setvisible,设置想要的渲染的布局layoutId.才会被渲染.合理运用.可以优化页面启动速度.

  • merge

    这个必须用在xml文件的根级,.
    2019日更挑战(二),android-聊聊写布局(二)_第2张图片
    image.png

不然是用不了的.这个能减少一层容器布局.不过RecyclerView的item布局不能用这个.


交流群:493180098,这是个很少吹水,交流学习的群.
APP开发维护咨询群 : 492685472 ,承接APP迭代.开发维护.咨询业务,付费快速解决问题.

你可能感兴趣的:(2019日更挑战(二),android-聊聊写布局(二))