本人小白,大学期间,打算开始自学Android,准备用博客写下所学所得,希望有所收获,望大家互相帮助
1.线性布局
LinearLayout 又称作线性布局,是一种非常常用的布局。正如它名字所描述的一样,这个布局会将它所包含的控件在线性方向上依次排列。
通过 android:orientation 属性指定了排列方向是 vertical,如果指定的是 horizontal,控件就会在水平方向上排列了。
注意:如果 LinearLayout 的排列方向是 horizontal,内部的控件就绝对不能将
宽度指定为 match_parent,因为这样的话单独一个控件就会将整个水平方向占满, 其他的控
件就没有可放置的位置了。同样的道理,如果 LinearLayout 的排列方向是 vertical,内部的控
件就不能将高度指定为 match_parent。
LinearLayout 中的关键属性 :
1.android:layout_gravity 是用于指定控件在布局中的对齐
方式。
android:layout_gravity 的可选值和 android:gravity 差不多,但是需要注意,当
LinearLayout 的排列方向是 horizontal 时,只有垂直方向上的对齐方式才会生效,因为此时水
平方向上的长度是不固定的,每添加一个控件,水平方向上的长度都会改变,因而无法指定
该方向上的对齐方式。
同样的道理,当 LinearLayout 的排列方向是 vertical 时,只有水平方向上的对齐方式才会生效。
2.android:layout_weight :这个属性
允许我们使用比例的方式来指定控件的大小,它在手机屏幕的适配性方面可以起到非常重要
的作用。
2.相对布局
RelativeLayout 又称作相对布局,也是一种非常常用的布局。和 LinearLayout 的排列规
则不同, RelativeLayout 显得更加随意一些,它可以通过相对定位的方式让控件出现在布局
的任何位置。也正因为如此, RelativeLayout 中的属性非常多 ,例如:android:layout_alignParentLeft、
android:layout_alignParentTop、 android:layout_alignParentRight、 android:layout_alignParentBottom、
android:layout_centerInParent 。
android:layout_above 属性可以让一个控件位于另一个控件的上方, 需要为这个属性指定相对控件 id 的引用
android:layout_below 表示让一个控件位于另一个控件的下方
android:layout_toLeftOf 表示让一个控件位于另一个控件的左侧
android:layout_toRightOf 表示让一个控件位于另一个控件的右侧。
注意,当一个控件去引用另一个控件的 id 时,该控件一定要定义在引用控件的后
面,不然会出现找不到 id 的情况。
android:layout_alignLeft 表示让一个控件的左边缘和另一个控件的左边缘对齐
android:layout_alignRight 表示让一个控件的右边缘和另一个控件的右边缘对齐
还有 android:layout_alignTop 和 android:layout_alignBottom,道理都是一样的
3.帧布局
FrameLayout 相比于前面两种布局就简单太多了, 因此它的应用场景也少了很多。这种
布局没有任何的定位方式,所有的控件都会摆放在布局的左上角。
4.百分比布局