【问题标题】:What is the disadvantages of RelativeLayoutRelativeLayout 的缺点是什么
【发布时间】:2015-05-25 08:32:26
【问题描述】:

我准备了一些关于 android 布局的性能优化的文章。他们中的大多数人建议在其他布局上使用RelativeLayouts,因为这可能会帮助您避免使用占用内存的嵌套布局。

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

RelativeLayouts 的缺点是什么?

什么时候应该避免使用RelativeLayouts?

提前致谢。

【问题讨论】:

  • AFAIK 使用 RelativeLayout 没有缺点!相反,我会说它在所有布局中更好,您可以将组件放置在所需的位置。
  • 我相信至少有这个链接说相对布局包含一个额外的测量通道,但建议 ...blog.echolocker.com/performance

标签: android android-layout android-relativelayout


【解决方案1】:

对我来说,如果您必须重新组织组件,RelativeLayout 会非常耗时。这是最大的缺点。

出于这个原因,我会说RelativeLayout 作为顶层布局和底层布局非常好。但是中级布局最好使用 taylored (Linear, Table...) 布局。

例如,当创建一个表单时,我的 Activity 或 Fragment 的最顶层布局将是一个 RelativeLayout,但我的表单将被创建为一个大的垂直 LinearLayout。在这个 Linear 中,每一行都是一个 RelativeLayout,其中我将有一个 Text View 和一个 Edit Text。

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

【讨论】:

    【解决方案2】:

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

    更新:

    我复制了Is a RelativeLayout more expensive than a LinearLayout?的评论

    在 Google I/O 2013(为 Android 编写自定义视图)的一次演讲中, 罗曼盖伊澄清了导致大家的误解 开始对所有内容使用RelativeLayouts。总是一个相对布局 必须做两次测量通过。总的来说,只要你的 视图层次结构很简单。但是如果你的层次结构很复杂,做一个 额外的措施通过可能会相当昂贵。另外如果你 嵌套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

    【讨论】:

    • 感谢您提供的一般信息。但我知道这一切。我在问RelativeLayout的机制以及不推荐使用的情况。
    • 相对布局在大多数情况下是最常用的布局,根据我的经验,使用这种布局没有缺点。就像我之前说的,选择最适合工作的布局,稍后再担心性能。如果您真的非常担心劣势、性能等。您可以阅读stackoverflow.com/questions/4069037/…
    • 这是一个有用的链接。修改您的答案并将其添加到其中并为人们添加一些描述。
    猜你喜欢
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 2014-01-24
    • 2019-10-10
    • 1970-01-01
    相关资源
    最近更新 更多