FrameLayout与RelativeLayout进行叠加

时间:2014-04-05 01:16:57

标签: android android-relativelayout android-framelayout

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

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

我的问题是何时使用FrameLayout,如果不是这样的话?如果我采用FrameLayout方式有什么缺点?

1 个答案:

答案 0 :(得分:55)

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

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

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

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