Android之布局
Posted Cristiano_san
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android之布局相关的知识,希望对你有一定的参考价值。
一、布局的定义
布局:一种可用于放置很多控件的容器,可以按照一定的规律调整内部控件的位置
二、 线性布局(LinearLayout)
- 1、 定义:该布局会将它所包含的控件在线性方向上依次排列,其代码都是在LinearLayout元素下实现的
- 2、布局文件中的android:orientation属性指定了控件的排列方向。
- 若是vertical,则控件按垂直方向排列;若为horizontal,则控件按水平方向排列。
- 注:如果声明为vertical,则内部控件的高度不能指定为match_parent;
如果声明为horizontal,则内部控件的宽度不能指定为match_parent;
- 3、android:gravity用于指定文字在控件中的对齐方式;而android:layout_gravity用于指定控件在布局中的对齐方式。
- 4、若LinearLayout的排列方向为vertical时,只有水平方向上的对齐方式才会改变,因为垂直方向上的长度不是固定的;若为horizontal时,只有垂直方向上的对齐方式才会改变,因为水平方向上的长度不是固定的
- 5、android:layout_weight允许我们使用比例的方式来制定控件的大小,若此时控件的排列方向为horizontal,则宽度可调成0dp;
- 6、dp是Android中用于指定控件大小、间距等属性的单位
三、 相对布局(RelativeLayout)
- 1、定义:他可以通过相对定位的方式让控件出现在布局的任何位置,其控件都是在RelativeLayout布局下实现的
相对布局具有两种相对性:- 1)相对于父布局定位,其中几个常见的属性:
android:layout_alignParentRight:表示相对于父布局处在右边
android:layout_alignParentLeft:表示相对于父布局处在左边
android:layout_alignParentTop:表示相对于父布局处在上边
android:layout_alignParentButton:表示相对于父布局处在下边 - 2)相对于控件定位,其中几种常见的属性:
android:layout_centerInParent:表示定义定位于中间位置的控件(我们以控件Button 3为基准)
android:layout_above="@id/button_3":表示定义定位相对于中间控件顶部的位置
android:layout_below="@id/button_3":表示定义定位相对于中间控件底部的位置
android:layout_toLeftOf="@id/button_3":表示定义定位相对于中间控件左边的位置
android:layout_toRightOf="@id/button_3":表示定义定位相对于中间控件右边的位置 - 3)
android:layout_alignLeft:表示让一个控件的左边缘和另一个控件的左边缘对齐
android:layout_alignRight:表示让一个控件的右边缘和另一个控件的右边缘对齐
android:layout_alignLeft:表示让一个控件的顶部边缘和另一个控件的顶部边缘对齐
android:layout_alignLeft:表示让一个控件的底部边缘和另一个控件的底部边缘对齐
- 1)相对于父布局定位,其中几个常见的属性:
四、 帧布局(FrameLayout)
- 1、定义:此布局没有方便的定位方式,所有的控件都会默认摆放在布局的左上角,其代码都是在FrameLayout布局下实现的
- 2、当然我们也可以通过android:layout_gravity对控件的对齐方式进行调整,以达到避免所有控件摆放在左上角的情况。向对于前两种布局,这种情况的布局使用较少
五、百分比布局
- 1、由于只有LinearLayout布局支持使用android:layout_weight属性来实现按比例指定控件大小的功能,其余两个布局都不支持
- 2、因此百分比布局只为FrameLayout 、RelativeLayout中进行了扩展,使得在这两个布局之下也能实现按比例指定控件大小的功能,其控件分别是在PercentFrameLayout和PrecentRelativeLayout布局下实现的,这两个布局分别继承了前者的所有属性和方法
- 3、在百分比布局下,无需再使用wrap_content、match_parent等方式来指定控件的大小,直接指定控件在布局中所占的百分比就行,并且通过layout_gravity来指定控件的位置
- 4、build.gradle文件中添加百分比布局库的依赖
implementation 'com.android.support:percent:24.2.1'
以上是关于Android之布局的主要内容,如果未能解决你的问题,请参考以下文章