RelativeLayout(相对布局)
主要特点:为某一个组件为参照物,来定位下一个组件的位置的布局方式(适配推荐)
LinearLayout(线性布局)
主要特点:可以指定布局的排列方式:horizontal(水平)、vertical(垂直),默认是水平; android:layout_weight="1",这个weight是指父布局剩余的空间的比重,在垂直布局时,代表行距;水平布局时代表列宽;weight值越大就越大。
FrameLayout(帧布局)
主要特点:下个子View会重复覆盖上个子View
AbsoluteLayout(绝对布局)
主要特点:采用坐标轴的方式定位组件(谷歌官方已不建议使用)
TableLayout(表格布局)
主要特点:
此外还有几个将子元素的位置分配到行或列中,一个TableLayout由许多的TableRow组成,其中TableRow代表一行,TableRow的每一个视图组件代表一个单元格。
一些属性的解析:
android:layout_gravity:是指该组件在父布局的显示位置
android:gravity:是指该组件里面的元素在该组件的显示位置,比如Button里面的文字等
android:padding:是指该view里面的内容与view边界的距离,例如Button里面的文字离Button控件边界的数值
android:layout_margin:是指该view与其他view的周边距离
比较常见的布局还有:
CoordinatorLayout(协调布局):协调内部的各个子控件进行交互,通过设置子控件的behavior来操控子控件的一些操作和动画,5.0系统引进的Material Design其中的一种新型控件
顺便提一下MD还有哪些新的控件和变化:
MD动画和activity转场动画,调色板Palette,RecyclerView,CardView,Toolbar,TextInputLayout,FloatingActionButton,SnackBar,NavigationView,DrawerLayout,TabLayout,CoordinatorLayout,CollapsingToolbarLayout等等
ConstraintLayout(约束布局):新出的一种布局方式,有望取代其他布局
建议参考文章:http://www.jianshu.com/p/f61227a2775f
PercentRelativeLayout、PercentFrameLayout(百分百布局):按照父布局的宽高进行百分比分隔,需添加依赖(compile 'com.android.support:percent:25.1.0'),需要编译版本 23以上(适配推荐)
支持的属性有:
app:layout_heightPercent
app:layout_widthPercent
app:layout_marginPercent
app:layout_marginTopPercent
app:layout_marginBottomPercent
app:layout_marginLeftPercent
app:layout_marginRightPercent
app:layout_marginStartPercent
app:layout_marginEndPercent
app:layout_aspectRatio(代表纵横比)