android|Android 基本的UI布局

这几天想换份工作,四处奔波,到处碰壁!深刻感受到自身能力有限,需要多加学习!
今天我们来聊聊 Android 的五大UI布局
一、LinearLayout(线性布局)
二、RelativeLayout(相对布局)
三、AbsoluteLayout(绝对布局)
四、TableLayout(表格布局)
五、FrameLayout(帧布局)


一、LinearLayout(线性布局):这个布局通过android:orientation 来设置组件的对齐方式(垂直/水平)
下面我们来看代码


显示的效果
android|Android 基本的UI布局
文章图片



这里主要是android:gravity 和 android:layout_gravity 这两个属性的区别
android:gravity :这个是设置子组件的对齐方式,比如button组件可以用这个来设置button中text的对齐方式
android:Layout_gravity : 这个是设置组件相对于父组件的对齐方式,如代码中的Button1 用这个属性设置相对于父组件的右对齐


二、 RelativeLayout(相对布局):这个布局主要是通过组件的ID来设定相对的位置的显示,比如,现在我站在这里,然后你站在我的后面,这就是相对位置。

<1>. 属性值为true或false
android:layout_centerHrizontal水平居中 android:layout_centerVertical垂直居中 android:layout_centerInparent相对于父元素完全居中 android:layout_alignParentBottom贴紧父元素的下边缘 android:layout_alignParentLeft贴紧父元素的左边缘 android:layout_alignParentRight贴紧父元素的右边缘 android:layout_alignParentTop贴紧父元素的上边缘 android:layout_alignWithParentIfMissing若找不到兄弟元素以父元素做参照物

<2>. 属性值必须为id的引用名”@id/id-name”
android:layout_below在某元素的下方 android:layout_above在某元素的上方 android:layout_toLeftOf在某元素的左边 android:layout_toRightOf在某元素的右边 android:layout_alignBaseLine该控件的baseline和给定ID的控件的Baseline对齐 android:layout_alignTop本元素的上边缘和某元素的的上边缘对齐 android:layout_alignLeft本元素的左边缘和某元素的的左边缘对齐 android:layout_alignBottom本元素的下边缘和某元素的的下边缘对齐 android:layout_alignRight本元素的右边缘和某元素的的右边缘对齐

<3>. 属性值为具体的像素值,如30dip,40px
android:layout_marginBottom离某元素底边缘的距离 android:layout_marginLeft离某元素左边缘的距离 android:layout_marginRight离某元素右边缘的距离 android:layout_marginTop离某元素上边缘的距离


如上面,就是一些基本的属性



android|Android 基本的UI布局
文章图片




三、AbsoluteLayout(绝对布局):这个布局通过使用 Layout_x 和 Layout_y 来准确地设置组件的xy坐标。同时允许组件有重叠。由于这个布局太过刚性,所以一般不建议使用。主要有下面两个属性
Layout_xx方向的坐标Layout_yy方向的坐标





四、TableLayout(表格布局):TableLayout 将子元素的位置分配到行或列中。一个TableLayout 由许多的TableRow 组成,每个TableRow 都会定义一个 row(事实上,你可以定义其它的子对象)。主要属性有:
android:stretchColumns伸展的列的索引 android:shrinkColumns收缩的列的索引 android:collapseColumns 倒塌的列的索引(即销毁)



android|Android 基本的UI布局
文章图片



五、FragmentLayout(帧布局):最简单的一个布局对象。它被定制为你屏幕上的一个空白备用区域,之后你可以在其中填充一个单一对象。比如,一张你要发布的图片。所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前 一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。








【android|Android 基本的UI布局】

    推荐阅读