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

瞎扯 第二天,继续
接上篇,上篇主要简单聊了下分析布局
今天还是差不多,优化布局.
优化布局: 就说说我知道的一些,欢迎补充
1.减少嵌套 这点上篇就讲过了,
再提是因为这个的重要性吧,
安卓的嵌套大致两种.

  • 列表嵌套 这种呢.首先要相信一点.同向的情况下,90%的列表设计都是可以一个RecyclerView搞定的.
    如果非要嵌套呢.那么嵌套RecyclerViewadapter,一定要注意缓存,不要每次
    onBindViewHolder的时候都去重新创建一次,
    纵向套横向其实算不上嵌套.
    当然,还有事件冲突,所以,不到万不得已,不要去嵌套,该怼的设计就得怼.
  • 容器嵌套. 还是上篇提到的,LinearLayout,RelativeLayout等等疯狂嵌套.
    然后页面渲染卡的一笔,然后被人吐槽,安卓卡死.
    【2019日更挑战(二)|2019日更挑战(二),android-聊聊写布局(二)】好在现在出了约束布局CoordinatorLayout,虽然我也不大用,因为用不上.不过是优化布局的神器.
    性能上比RelativeLayout更好.还能做一些RelativeLayout不好做的事.
    最重要的是它对屏幕的适配性.
2 .背景 对,就是背景.
我见过很多,现在还喜欢用.9图做背景.真的是不推荐
优化的地方:
(1).不要重复设置背景: 这是常常会被忽略的一件事情.经常会等到做布局优化的时候才会去改.
比如一个列表页面:

2019日更挑战(二)|2019日更挑战(二),android-聊聊写布局(二)
文章图片
image.png

然后列表条目的布局:

这种写法我是见过的..
然后打开查看过度绘制,整个页面都是红的. 这里一共重复了4次背景.
  • 第一层,window背景
  • 第二层.RelativeLayout背景
  • 第三层.ReyclerView背景
  • 第四层.TextView背景
实际上.除了TextView,其他的背景都可以去掉.
去掉window背景
@android:color/transparent

(2).尽量不要用图片做控件背景. 除了启动页.和部分标签性的背景,还有什么地方是值得用图片做背景的
如果只是为了一个边线,

2019日更挑战(二)|2019日更挑战(二),android-聊聊写布局(二)
文章图片
image.png
2019日更挑战(二)|2019日更挑战(二),android-聊聊写布局(二)
文章图片
image.png 2019日更挑战(二)|2019日更挑战(二),android-聊聊写布局(二)
文章图片
这些,只是一个shape就解决了.
我基本很少找UI切背景.只有icon会找UI, .9已经1年多没用过了吧.
如果允许,最好使用svg来作为icon和背景.
一.节省app大小,
二.不会失真.如果是图片做背景.失真是很的难看.
三.节省内存.图片可是很占内存的.
总结就是能用shape的或者canvas画的,绝不用图片,搞不定也最好用svg来搞. (3)ViewStub merge 这两个东西,优化上来说,是很常用的
  • ViewStub
    相当于一个占位符.必须调用了inflate 和setvisible,设置想要的渲染的布局layoutId.才会被渲染.合理运用.可以优化页面启动速度.
  • merge


    这个必须用在xml文件的根级,. 2019日更挑战(二)|2019日更挑战(二),android-聊聊写布局(二)
    文章图片
    image.png
不然是用不了的.这个能减少一层容器布局.不过RecyclerView的item布局不能用这个.
交流群:493180098,这是个很少吹水,交流学习的群.
APP开发维护咨询群 : 492685472 ,承接APP迭代.开发维护.咨询业务,付费快速解决问题.

    推荐阅读