我准备了一些关于Android布局的性能优化的文章。他们中的大多数建议使用RelativeLayout
而不是其他布局,因为这可以帮助您避免使用占用内存的嵌套布局。
就个人而言,我相信每件事都有其优点和缺点。但我无法弄清楚RelativeLayout
对不同类型布局的不利之处。
RelativeLayouts的缺点是什么?
何时应避免使用RelativeLayouts?
提前致谢。
答案 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
答案 1 :(得分:3)
对我来说,如果你需要重新组织你的组件,那么RelativeLayout会耗费太多时间。这是最大的缺点。
出于这个原因,我会说RelativeLayout非常适合作为顶级布局和底层布局。但是使用taylored(Linear,Table ...)布局可以更好地服务于中级布局。
例如,在创建表单时,我的Activity或Fragment的顶部布局将是RelativeLayout,但我的表单将被创建为一个大的垂直LinearLayout。在这个线性内部,每一行都是一个RelativeLayout,我将在其中有一个文本视图和一个编辑文本。
通过这种方式,我可以非常轻松地对表单的字段进行排序,并且(我认为)通过不过度使用嵌套的LinearLayout来保持布局内存的友好性。