线性布局(LinearLayout)
orientation
horizontal:水平从左往右 vertical:垂直从上到下 若不指定orientation属性,默认为水平
<?xml version="1.0" encoding="utf-8"?>
< LinearLayout xmlns: android= " http://schemas.android.com/apk/res/android" xmlns: app= " http://schemas.android.com/apk/res-auto" xmlns: tools= " http://schemas.android.com/tools" android: layout_width= " match_parent" android: layout_height= " match_parent" android: orientation= " vertical" tools: context= " .LinearLayoutActivity" > < LinearLayoutandroid: layout_width= " match_parent" android: layout_height= " wrap_content" android: orientation= " horizontal" > < TextViewandroid: layout_width= " wrap_content" android: layout_height= " wrap_content" android: text= " 横排第一个 " android: textSize= " 17sp" android: textColor= " #000000" /> < TextViewandroid: layout_width= " wrap_content" android: layout_height= " wrap_content" android: text= " 横排第二个" android: textSize= " 17sp" android: textColor= " #000000" /> </ LinearLayout> < LinearLayoutandroid: layout_width= " match_parent" android: layout_height= " wrap_content" android: orientation= " vertical" > < TextViewandroid: layout_width= " wrap_content" android: layout_height= " wrap_content" android: text= " 竖排第一个" android: textSize= " 17sp" android: textColor= " #000000" /> < TextViewandroid: layout_width= " wrap_content" android: layout_height= " wrap_content" android: text= " 竖排第二个" android: textSize= " 17sp" android: textColor= " #000000" /> </ LinearLayout> </ LinearLayout>
线性布局的权重
指的是线性布局的下级视图各自拥有多大比例的宽高 权重属性名叫layout_weight,但该属性不在LinearLayout节点设置,而在线性布局的直接下一级视图设置,表示该下级视图占据的宽高比例。 layout_width填0dp时,layout_weight表示水平方向的宽度比例 layout_height填0dp时,layout_weight表示垂直方向的高度比例
<?xml version="1.0" encoding="utf-8"?>
< LinearLayout xmlns: android= " http://schemas.android.com/apk/res/android" xmlns: app= " http://schemas.android.com/apk/res-auto" xmlns: tools= " http://schemas.android.com/tools" android: layout_width= " match_parent" android: layout_height= " match_parent" android: orientation= " vertical" tools: context= " .LinearLayoutActivity" > < LinearLayoutandroid: layout_width= " match_parent" android: layout_height= " wrap_content" android: orientation= " horizontal" > < TextViewandroid: layout_width= " 0dp" android: layout_height= " wrap_content" android: layout_weight= " 2" android: text= " 横排第一个" android: textSize= " 17sp" android: textColor= " #000000" /> < TextViewandroid: layout_width= " 0dp" android: layout_height= " wrap_content" android: layout_weight= " 1" android: text= " 横排第二个" android: textSize= " 17sp" android: textColor= " #000000" /> </ LinearLayout> < LinearLayoutandroid: layout_width= " match_parent" android: layout_height= " wrap_content" android: orientation= " vertical" > < TextViewandroid: layout_width= " wrap_content" android: layout_height= " 0dp" android: layout_weight= " 2" android: text= " 竖排第一个" android: textSize= " 17sp" android: textColor= " #000000" /> < TextViewandroid: layout_width= " wrap_content" android: layout_height= " 0dp" android: layout_weight= " 1" android: text= " 竖排第二个" android: textSize= " 17sp" android: textColor= " #000000" /> </ LinearLayout> </ LinearLayout>
相对布局(RelativeLayout)
相对布局的下级视图位置由其他视图决定。用于确定下级视图位置的参照物分两种: 与该视图自身平级的视图 该视图的上级视图(也就是它归属的RelativeLayout) 如果不设定下级视图的参照物,那么下级视图默认显示在RelativeLayout内部的左上角
<?xml version="1.0" encoding="utf-8"?>
< RelativeLayout xmlns: android= " http://schemas.android.com/apk/res/android" android: layout_width= " match_parent" android: layout_height= " 150dp" > < TextViewandroid: id= " @+id/tv_center" android: layout_width= " wrap_content" android: layout_height= " wrap_content" android: background= " #ffffff" android: layout_centerInParent= " true" android: text= " 我在中间" android: textSize= " 11sp" android: textColor= " #000000" /> < TextViewandroid: id= " @+id/tv_center_horizontal" android: layout_width= " wrap_content" android: layout_height= " wrap_content" android: background= " #ffffff" android: layout_centerHorizontal= " true" android: text= " 我在水平中间" android: textSize= " 11sp" android: textColor= " #000000" /> < TextViewandroid: id= " @+id/tv_center_vertical" android: layout_width= " wrap_content" android: layout_height= " wrap_content" android: background= " #ffffff" android: layout_centerVertical= " true" android: text= " 我在垂直中间" android: textSize= " 11sp" android: textColor= " #000000" /> < TextViewandroid: id= " @+id/tv_parent_left" android: layout_width= " wrap_content" android: layout_height= " wrap_content" android: background= " #ffffff" android: layout_alignParentLeft= " true" android: text= " 我跟上级左边对齐" android: textSize= " 11sp" android: textColor= " #000000" /> < TextViewandroid: id= " @+id/tv_parent_right" android: layout_width= " wrap_content" android: layout_height= " wrap_content" android: background= " #ffffff" android: layout_alignParentRight= " true" android: text= " 我跟上级右边对齐" android: textSize= " 11sp" android: textColor= " #000000" /> < TextViewandroid: id= " @+id/tv_parent_top" android: layout_width= " wrap_content" android: layout_height= " wrap_content" android: background= " #ffffff" android: layout_alignParentTop= " true" android: text= " 我跟上级顶部对齐" android: textSize= " 11sp" android: textColor= " #000000" /> < TextViewandroid: id= " @+id/tv_parent_bottom" android: layout_width= " wrap_content" android: layout_height= " wrap_content" android: background= " #ffffff" android: layout_alignParentBottom= " true" android: text= " 我跟上级底部对齐" android: textSize= " 11sp" android: textColor= " #000000" /> < TextViewandroid: id= " @+id/tv_left_center" android: layout_width= " wrap_content" android: layout_height= " wrap_content" android: background= " #ffffff" android: layout_toLeftOf= " @id/tv_center" android: layout_alignBottom= " @id/tv_center" android: text= " 我在中间左边" android: textSize= " 11sp" android: textColor= " #000000" /> < TextViewandroid: id= " @+id/tv_above_center" android: layout_width= " wrap_content" android: layout_height= " wrap_content" android: background= " #ffffff" android: layout_above= " @id/tv_center" android: layout_alignLeft= " @id/tv_center" android: text= " 我在中间上面" android: textSize= " 11sp" android: textColor= " #000000" /> </ RelativeLayout>
网格布局(GridLayout)
支持多行多列 默认从左往右、从上到下,(也就是说,先从左往右,再从上到下)新增两个属性: columnCount属性,它指定了网格的列数,即每行可以放几个视图 rowCount属性,他指定了网格的行数,即每列可以放几个
<?xml version="1.0" encoding="utf-8"?>
< GridLayout xmlns: android= " http://schemas.android.com/apk/res/android" xmlns: app= " http://schemas.android.com/apk/res-auto" xmlns: tools= " http://schemas.android.com/tools" android: layout_width= " match_parent" android: layout_height= " match_parent" android: columnCount= " 2" android: rowCount= " 2" > < TextViewandroid: layout_width= " 0dp" android: layout_columnWeight= " 1" android: layout_height= " 60dp" android: background= " #ffcccc" android: text= " 浅红色" android: gravity= " center" android: textColor= " #000000" android: textSize= " 17sp" /> < TextViewandroid: layout_width= " 0dp" android: layout_columnWeight= " 1" android: layout_height= " 60dp" android: background= " #ffaa00" android: text= " 橙色" android: gravity= " center" android: textColor= " #000000" android: textSize= " 17sp" /> < TextViewandroid: layout_width= " 0dp" android: layout_columnWeight= " 1" android: layout_height= " 60dp" android: background= " #00ff00" android: text= " 绿色" android: gravity= " center" android: textColor= " #000000" android: textSize= " 17sp" /> < TextViewandroid: layout_width= " 0dp" android: layout_columnWeight= " 1" android: layout_height= " 60dp" android: background= " #660066" android: text= " 深紫色" android: gravity= " center" android: textColor= " #000000" android: textSize= " 17sp" /> < TextViewandroid: layout_width= " 0dp" android: layout_columnWeight= " 1" android: layout_height= " 60dp" android: background= " #660066" android: text= " 深紫色" android: gravity= " center" android: textColor= " #000000" android: textSize= " 17sp" /> </ GridLayout>
滚动视图(ScrollView)
滚动视图有两种: ScrollView:垂直方向,layout_width属性值设置为match_parent,layout_height属性值设置为wrap_content。 HorizontalScrollView:水平方向,layout_width属性值设置为wrap_content,layout_height属性值设置为match_parent。
<?xml version="1.0" encoding="utf-8"?>
< LinearLayout xmlns: android= " http://schemas.android.com/apk/res/android" xmlns: app= " http://schemas.android.com/apk/res-auto" android: layout_width= " match_parent" android: layout_height= " match_parent" android: orientation= " vertical" > < HorizontalScrollViewandroid: layout_width= " wrap_content" android: layout_height= " 200dp" > < LinearLayoutandroid: layout_width= " wrap_content" android: layout_height= " match_parent" android: orientation= " horizontal" > < Viewandroid: layout_width= " 300dp" android: layout_height= " match_parent" android: background= " #aaffff" /> < Viewandroid: layout_width= " 300dp" android: layout_height= " match_parent" android: background= " #ffff00" /> </ LinearLayout> </ HorizontalScrollView> < ScrollViewandroid: layout_width= " match_parent" android: layout_height= " wrap_content" > < LinearLayoutandroid: layout_width= " match_parent" android: layout_height= " wrap_content" android: orientation= " vertical" > < Viewandroid: layout_width= " match_parent" android: layout_height= " 400dp" android: background= " #00ff00" /> < Viewandroid: layout_width= " match_parent" android: layout_height= " 400dp" android: background= " #ffffaa" /> </ LinearLayout> </ ScrollView> </ LinearLayout>