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