1、官方说明
FrameLayout的设计是为了在屏幕上划出一块区域来显示单个项目。也就是说FrameLayout这种布局是用于控制单个视图,因为它很难在不同尺寸的屏幕上组织多个子视图的布局而又要求这些子视图不重叠。但是你可以使用android:layout_gravity属性来控制每个子视图的重心,从而就可以向FrameLayout布局中添加多个子视图。
多个子视图被画在同一个区域,最后添加的子视图在最上面。而FrameLayout的大小和其中尺寸最大的子视图有关。
2、总结
- FrameLayout布局不适合平铺多个子视图,它内部一般只适合放置单个子元素;
- 可以使用属性android:layout_gravity来控制多个子视图上下层次或对齐方式,来达到不同的效果
- 注意FrameLayout的大小和它里面最大的子视图有关,如果不控制好其中的子视图的尺寸,就会让FrameLayout变形。