Moosphan / Android-Daily-Interview

:pushpin:每工作日更新一道 Android 面试题,小聚成河,大聚成江,共勉之~

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

2019-07-11:谈谈布局优化的技巧?

Moosphan opened this issue · comments

2019-07-11:谈谈布局优化的技巧?

1.我觉第一点减少不必要的嵌套。
2.能自定义的解决的就自定义。

2.能自定义的解决的就自定义。

应该是能不自定义就不自定义吧

@futureyang 具体是不是 不记得了

1、降低Overdraw(过度绘制),减少不必要的背景绘制
2、减少嵌套层次及控件个数
3、使用Canvas的clipRect和clipPath方法限制View的绘制区域
4、通过imageDrawable方法进行设置避免ImageView的background和imageDrawable重叠
5、借助ViewStub按需延迟加载
6、选择合适的布局类型
7、熟悉API尽量借助系统现有的属性来实现一些UI效果

1、降低Overdraw(过度绘制),减少不必要的背景绘制
2、减少嵌套层次及控件个数,使用include共用布局方法
3、使用Canvas的clipRect和clipPath方法限制View的绘制区域
4、通过imageDrawable方法进行设置避免ImageView的background和imageDrawable重叠
5、借助ViewStub按需延迟加载
6、选择合适的布局类型
7、熟悉API尽量借助系统现有的属性来实现一些UI效果

1、降低Overdraw(过度绘制),减少不必要的背景绘制
2、减少嵌套层次及控件个数,使用include共用布局方法
3、使用Canvas的clipRect和clipPath方法限制View的绘制区域
4、通过imageDrawable方法进行设置避免ImageView的background和imageDrawable重叠
5、借助ViewStub按需延迟加载
6、选择合适的布局类型
7、熟悉API尽量借助系统现有的属性来实现一些UI效果

还有include、merge标签没有说到,

1.减少过度绘制,减少不必要的背景绘制
2.减少布局深层次嵌套,可以配合merge,include,viewStub,约束布局这些来减少布局的开销
3.能用列表的尽量用列表,尽量减少嵌套

1.减少过度绘制,减少不必要的背景绘制,线性,相对,约束层级一样的用线性,层级多的用相对或者约束来控制,减少层级
2.减少布局深层次嵌套,配合merge,include,viewStub,约束布局这些来减少布局的开销
3.尽量减少控件个数,对 TextView 左边或者右边有图片可是试用 drawableLeft,drawableRight
4.熟悉API尽量借助系统现有的属性来实现一些UI效果
5.对于 ImageVIew 通过imageDrawable方法进行设置避免ImageView的background和imageDrawable重叠
6.使用Canvas的clipRect和clipPath方法限制View的绘制区域

补充
1、使用constaintlayout1.1版本来进行新布局编写
2、使用activity而不是appcompatActivity(会少2层根布局好像)

布局中尽量减少嵌套
如果有嵌套的话使用constainlayout布局
有共同布局的时直接使用include引入

布局中尽量减少嵌套
如果有嵌套的话使用constainlayout布局
有共同布局的时直接使用include引入