![Android开发实战:从学习到产品](https://wfqqreader-1252317822.image.myqcloud.com/cover/688/920688/b_920688.jpg)
上QQ阅读APP看书,第一时间看更新
3.5 FrameLayout:帧布局管理器
帧布局管理器为容器内的控件创建一块空白区域(帧),一帧一个控件,后面添加的控件覆盖在前面的控件上面,类似于Java AWT中的CardLayout布局。例如,在播放器App中,播放器上面的按钮就浮动在播放器上面。
3.5.1 FrameLayout布局实例
FrameLayout布局文件实例:
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P72_128689.jpg?sign=1738828515-B8O1a4dJUxBJPOWmTRTN82G6f2UXKxH6-0-788edc58b2a5b5ad820cfb19644199eb)
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P73_69456.jpg?sign=1738828515-ZC8tmvgqKmiIG1xZuSrlJwIfk8jGbEx2-0-77a53b6a5b78fecaef42e5e30b29a383)
图3-9 帧布局效果图
在这个程序中使用帧布局,包括3个TextView控件,并为不同控件设置了不同背景色。由于采用了帧布局,因此3个控件会集中到一个地方并重叠。程序运行效果如图3-9所示。
3.5.2 使用代码控制帧布局管理器
与前几种布局管理器一样,帧布局也可以通过Android.widget.FrameLayout类来动态控制,所有的参数也可以通过Android.widget.FrameLayout.LayoutParams类来控制。
通过Android.widget.FrameLayout类和Android.widget.FrameLayout.LayoutParams类控制帧布局的代码实例如下:
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P73_128691.jpg?sign=1738828515-Ude8eU1DAMdFOCClHzvldOhf9FiSj3rb-0-00ce9728a8a16cfd360443d1648d9e4c)
这个程序不使用布局管理器文件对组件进行配置,而是直接在Activity中完成这些操作,先定义一个帧布局,再创建几个控件,并加入帧布局中。程序实现的效果如图3-10所示。
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P74_69544.jpg?sign=1738828515-yFI5KLbYkcta17Fw7neVrb3Zx1ZRHKaT-0-3eb6b0c1f722061e431f97c9d0867af0)
图3-10 代码控制的帧布局效果图