【问题标题】:FrameLayout vs RelativeLayout for overlays用于覆盖的 FrameLayout 与 RelativeLayout
【发布时间】:2014-05-17 12:20:18
【问题描述】:

我需要为我的应用实现一个覆盖(半透明)屏幕,类似于Showcase View

我的猜测是在这个用例中使用FrameLayout,因为它用于将项目堆叠在一起。但是我惊讶地发现上面的库使用了RelativeLayout

我的问题是什么时候使用FrameLayout,如果不是在这种情况下?如果我走FrameLayout的方式有什么缺点?

【问题讨论】:

    标签: android android-relativelayout android-framelayout


    【解决方案1】:

    选择布局时的一个常见经验法则是选择导致嵌套布局视图数量最少的组合。

    具体到您的问题,RelativeLayout 比简单得多的 FrameLayout 更大,功能更强大。所以对于简单的布局,后者可能更有效。但是如果使用 RelativeLayout 并且它添加的定位选项允许您在较少数量的布局视图中实现您的 GUI,那么这可能是一个更好的选择。

    Here's a page 讨论了一些权衡并演示了一些在设计布局时可以使用的有用工具。它主要讨论的是RelativeLayout 和LinearLayout,但也适合您在RelativeLayout 和Framelayout 之间进行选择。请记住,FrameLayout 是一个更简单的布局。

    Edit (2017):对于更复杂的布局,您可以使用 ConstraintLayout 避免嵌套布局。

    【讨论】:

    • 我用 Android 开发者参考中的一个希望寿命更长的链接替换了损坏的链接。新链接不像前一个链接那么准确,但它确实展示了如何使用几个布局性能工具。
    • 您好,FrameLayout 是最好的布局,例如注册页面布局吗?例如,您不能将所有详细信息都放在一个布局页面中,因此您必须包含多个页面来收集用户的所有详细信息,例如姓名、地址、电话号码等。好吧,我也可以使用滚动视图,但具有多个框架的框架布局看起来会更好。我在问布局优化。谢谢。
    • FrameLayout 作为一个简单的容器很有用,它可以在其中显示不同的片段。但是这些片段,每个都有自己的布局,很可能会使用其他片段之一,因为 FrameLayout 不允许定位它包含的视图。
    • 我所做的只是在每次按下 NEXT 或 BACK 按钮时更改框架布局的可见性。 page1.visibility = ConstraintLayout.GONE page2.visibility = ConstraintLayout.VISIBLE(反之亦然)我还没有探索过 Fragments。我想知道 Fragments 与不同的活动 + FrameLayouts 相比是否是更好的选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    • 2014-03-16
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多