AndroidStudio学习——布局Android Studio布局详解
布局是什么?
布局就是界⾯的框架,类似⼀个可以放很多控件的容器
如下图为布局和控件的关系,布局⾥可嵌套布局和控件,但控件⾥不可放布局
布局的分类
传统布局:
线性布局LinearLayout
相对布局RelativeLayout
帧布局 FrameLayout (⼜:层/框架布局)
百分⽐布局PercentFrameLayout/PercentRelativeLayout
表格布局TableLayout
⽹格布局GridLayout
绝对布局AbsoluteLayout
新型布局:
约束布局ConstraintLayout
布局的创建和加载
如图在project视图模式下新建,命名test1
然后在MainActivity中加载
8种布局详解
布局LinearLayout
线性布局是常⽤⼀种布局,按垂直(vertical)或者⽔平(horizontal)⽅向来布局控件
orientation 决定控件排列⽅向,在线性布局中必不可少
gravity 决定内部控件对齐⽅式,同时也存在于相对布局和表格布局(注意与layout_gravity区分)
center 居中显⽰,当LinearLayout线性⽅向为垂直⽅向时,center表⽰⽔平居中,但是并不能垂直居中,此时等同于
center_horizontal的作⽤;同样当线性⽅向为⽔平⽅向时,center表⽰垂直居中,等同于center_vertical。
layout_weight 表⽰权重,分配当前控件在剩余空间占⽐⼤⼩。要注意,如果在⽔平⽅向分配权重,就把width设置为0dp,如果在竖直⽅向分配权重,就把height设置为0dp (见书中代码演⽰)
⽰例:
相对布局
相对布局可以让⼦控件相对于兄弟控件或⽗控件进⾏布局
可以设置⼦控件相对于兄弟控件或⽗控件进⾏上下左右对齐
相对于某个视图或者⽗布局的位置 ,该布局下的⼦视图可以重叠参照物RelativeLayout能替换⼀些视图,不需要LinearLayout那么复杂<?xml version ="1.0" encoding ="utf-8"?><LinearLayout xmlns :android ="schemas.android/apk/res/android" android :layout_width ="match_parent" android :layout_height ="match_parent" android :orientation ="vertical"> <Button android :id ="@+id/button1" android :layout_width ="100dp" android :layout_height ="0dp" android :text ="Button1" android :layout_weight ="3"/> <Button android :id ="@+id/button2" android :layout_width ="100dp" android :layout_height ="0dp" android :text ="Button2" android :layout_gravity ="right" android :layout_weight ="1"/> <Button android :id ="@+id/button3" android :layout_width ="100dp" android :layout_height ="0dp" android :text ="Button3" android :layout_weight ="2"/></LinearLayout >
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
归纳⼀下RelativeLayout中⼦控件常⽤属性:
相对布局的属性有点相近,使⽤的时候要细⼼
1、相对于⽗控件
⽤法例如 android:layout_alignParentTop="true"
android:layout_alignParentTop 控件的顶部与⽗控件的顶部对齐
android:layout_alignParentBottom 控件的底部与⽗控件的底部对齐android:layout_alignParentLeft 控件的左部与⽗控件的左部对齐
android:layout_alignParentRight 控件的右部与⽗控件的右部对齐
2、相对给定id控件
⽤法例如:android:layout_above=“@id/**”
android:layout_above 控件的底部置于给定ID的控件之上
android:layout_below 控件的底部置于给定ID的控件之下
android:layout_toLeftOf 控件的右边缘与给定ID的控件左边缘对齐
android:layout_toRightOf 控件的左边缘与给定ID的控件右边缘对齐
android:layout_alignBaseline 控件的baseline与给定ID的baseline对齐android:layout_alignTop 控件的顶部边缘与给定ID的顶部边缘对齐
android:layout_alignBottom 控件的底部边缘与给定ID的底部边缘对齐android:layout_alignLeft 控件的左边缘与给定ID的左边缘对齐
android:layout_alignRight 控件的右边缘与给定ID的右边缘对齐
3、居中
⽤法例如:android:layout_centerInParent=“true”
android:layout_centerHorizontal ⽔平居中
android:layout_centerVertical 垂直居中
android:layout_centerInParent ⽗控件的中央
⽰例:
<?xml version ="1.0" encoding ="utf-8"?><RelativeLayout xmlns :android ="schemas.android/apk/res/android" android :layout_width ="match_parent" android :layout_height ="match_parent"> <Button android :id ="@+id/button1" android :text ="button1" android :layout_width ="wrap_content" android :layout_height ="wrap_content" android :layout_marginTop ="200dp" android :layout_alignParentTop ="true" android :layout_centerHorizontal ="true" /> <Button android :id ="@+id/button2" android :text ="button2" android :layout_width ="wrap_content" android :layout_height ="wrap_content" android :layout_toLeftOf ="@+id/button1" android :layout_marginBottom ="100dp" android :layout_alignBottom ="@id/button1" /> <Button android :id ="@+id/button3" android :text ="button3" android :layout_width ="wrap_content" android :layout_height ="wrap_content" android :layout_toRightOf ="@+id/button1" android :layout_alignBottom ="@+id/button1" /> <Button android :id ="@+id/button4" android :text ="button4" andr
oid :layout_width ="wrap_content" android :layout_height ="wrap_content" android :layout_below ="@+id/button1" android :layout_alignLeft ="@+id/button1"/></RelativeLayout >12345678910111213141516171819202122232425262728293031323334353637
>android学习教程
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论