Android系统提供了很多的界面Layout布局,LinearLayout主要是用来横向或者纵向显示,RelativeLayout可以控制控件之间的相对位置关系,类似于iOS当中的AutoLayout,这两者在平时的开发中都比较常用,而另一个FrameLayout提供了比这两者更加灵活的布局方式,利用FrameLayout我们可以达到子控件相互重叠的效果(Overlay)。看图:
图中圆环为普通的View,圆环当中的文字为多个TextView,整个布局文件的代码如下(不包含tab与最下面的button):
1 | <?xml version="1.0" encoding="utf-8"?> |
Overlay的效果在很多时候需要用到,特别是与Map相关的应用中,很多信息都会覆盖在地图之上。除了Overlay的效果之外,Navigaton Drawer中也建议主界面使用FrameLayout作为Root Container,这样更有利于今后各种需求的扩展。
如果我们的布局文件代表了相对独立的一部分功能,那么在写好的布局文件之后,我们应该将整个布局文件设计成类(Custom Compound View),从而可以将整个代码逻辑包装起来(比如相应的animation逻辑),避免将逻辑散落在fragment或者activity中,既规整了代码,又便于今后的复用。