RelativeLayout有什么缺点

时间:2015-03-22 07:00:05

标签: android android-layout relativelayout

我准备了一些关于Android布局的性能优化的文章。他们中的大多数建议使用RelativeLayout而不是其他布局,因为这可以帮助您避免使用占用内存的嵌套布局。

就个人而言,我相信每件事都有其优点和缺点。但我无法弄清楚RelativeLayout对不同类型布局的不利之处。

RelativeLayouts的缺点是什么?

何时应避免使用RelativeLayouts?

提前致谢。

2 个答案:

答案 0 :(得分:3)

相对布局在大多数情况下是最常用的布局,根据我的经验,使用此布局没有任何缺点。就像我之前说的那样,选择最适合的工作,并担心以后的性能。

更新:

我从Is a RelativeLayout more expensive than a LinearLayout?

复制了评论
  

在Google I / O 2013的演讲中(为Android编写自定义视图),   罗曼盖伊澄清了造成每个人的误解   为所有事情开始使用RelativeLayouts。一个RelativeLayout总是   必须做两个测量通过。总的来说,只要你的,它就可以忽略不计   视图层次结构很简单。但如果您的层次结构很复杂,那就做一个   额外的措施通过可能相当昂贵。如果你   嵌套RelativeLayouts,你得到一个指数测量算法。

     

https://www.youtube.com/watch?v=NYtB6mlu7vA&t=1m41s

     

https://www.youtube.com/watch?v=NYtB6mlu7vA&t=38m04s

     

https://developers.google.com/events/io/sessions/325615129

答案 1 :(得分:3)

对我来说,如果你需要重新组织你的组件,那么RelativeLayout会耗费太多时间。这是最大的缺点。

出于这个原因,我会说RelativeLayout非常适合作为顶级布局和底层布局。但是使用taylored(Linear,Table ...)布局可以更好地服务于中级布局。

例如,在创建表单时,我的Activity或Fragment的顶部布局将是RelativeLayout,但我的表单将被创建为一个大的垂直LinearLayout。在这个线性内部,每一行都是一个RelativeLayout,我将在其中有一个文本视图和一个编辑文本。

通过这种方式,我可以非常轻松地对表单的字段进行排序,并且(我认为)通过不过度使用嵌套的LinearLayout来保持布局内存的友好性。