FrameLayout与RelativeLayout进行叠加

问题描述 投票:56回答:1

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

我的猜测是将FrameLayout用于此用例,因为它用于将项目堆叠在一起。但我很惊讶地看到上面的库使用RelativeLayout

我的问题是什么时候使用FrameLayout,如果没有这样的情况?如果我采用FrameLayout方式有什么缺点?

android android-relativelayout android-framelayout
1个回答
55
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.