FrameLayout与RelativeLayout进行叠加

Jag*_*uar 58 android android-relativelayout android-framelayout

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

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

我的问题是什么时候使用FrameLayout,如果不是这样的话?如果我走的FrameLayout路有什么缺点?

sco*_*ttt 58

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

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

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

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

  • 我用Android Developers Reference中的一个更长寿的链接替换了已损坏的链接.新链接不像前一个链接那样,但它确实展示了如何使用一些布局性能工具. (3认同)