Android-Daily-Interview icon indicating copy to clipboard operation
Android-Daily-Interview copied to clipboard

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

Open Moosphan opened this issue 5 years ago • 11 comments

Moosphan avatar Jul 11 '19 01:07 Moosphan

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

Jsondx avatar Jul 11 '19 01:07 Jsondx

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

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

futureyang avatar Jul 11 '19 01:07 futureyang

@futureyang 具体是不是 不记得了

Jsondx avatar Jul 11 '19 01:07 Jsondx

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

futureyang avatar Jul 11 '19 01:07 futureyang

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

gabyallen avatar Jul 11 '19 02:07 gabyallen

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

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

Vicent9920 avatar Jul 11 '19 03:07 Vicent9920

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

hyyaoming avatar Jul 11 '19 16:07 hyyaoming

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

xiedong6688 avatar Aug 04 '19 09:08 xiedong6688

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

mikilangkilo avatar Feb 19 '21 11:02 mikilangkilo

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

mlinqirong avatar Dec 24 '21 08:12 mlinqirong

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

mlinqirong avatar Dec 24 '21 08:12 mlinqirong