![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=1734493074-n9sM9PlGKLW8Mh43LltHgxBal1mBJ917-0-0ec7f0bc2ff3a89b9eb4dd466c8d9f4b)
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P73_69456.jpg?sign=1734493074-sp2krcVoIskXIfMgRcNGgCD6LSvIxNb0-0-975d6295e0c728c8df3208e6cb32564e)
图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=1734493074-GPdttf0T3KoptgKjanewYhPuqi7Qd2CT-0-c08d79b1a205dd451ec883936f2e0636)
这个程序不使用布局管理器文件对组件进行配置,而是直接在Activity中完成这些操作,先定义一个帧布局,再创建几个控件,并加入帧布局中。程序实现的效果如图3-10所示。
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P74_69544.jpg?sign=1734493074-vRKZ90MFktlZdRigPlLytrJAlhhxr0mZ-0-cf235bfb5d2f6dfb68469b6e09d889a3)
图3-10 代码控制的帧布局效果图