Android四種常見布局方式示例教程
一、線性布局LinearLayout
有兩種排序方式
- orientation屬性值為horizontal時(shí),內(nèi)部視圖在水平方向從左往右排列。
- orientation屬性值為vertical時(shí),內(nèi)部視圖在垂直方向從上往下排列。
如果不指定orientation屬性,則LinearLayout默認(rèn)水平方向排列。
線性布局的權(quán)重
指線性布局的下級(jí)視圖各自擁有多大比例的寬高。
屬性名為layout_weight,但該屬性不在LinearLayout節(jié)點(diǎn)設(shè)置,而在線性布局的直接下級(jí)視圖設(shè)置,表示改下級(jí)視圖占據(jù)的寬高比例。
- layout_width為0dp時(shí),表示水平方向的寬度比例
- layout_height為0dp時(shí),表示垂直方向的高度比例
例:
第一個(gè)線性布局:width = 0dp 說明在水平方向設(shè)置寬度比例,weight = 1,占據(jù)weight總數(shù)的1/2,則占據(jù)一半空間。
第二個(gè)線性布局:height = 0dp 說明在垂直方向設(shè)置寬度比例,weight = 1,占據(jù)weight總數(shù)的1/3,則占據(jù)三分之一空間。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"http://寬度為0dp,通過權(quán)重設(shè)置寬度比例
android:layout_height="wrap_content"
android:layout_weight="1"http://weight為1,下面的weight也為1,占1/2,即寬度比例占1/2
android:text="橫排第一個(gè)"
android:textSize="17sp"
android:textColor="#000000"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="橫排第二個(gè)"
android:textSize="17sp"
android:textColor="#000000"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"http://高度為0dp,通過權(quán)重設(shè)置高度比例
android:layout_weight="1"http://weight為1,下面的weight為2,占1/3,即寬度比例占1/3
android:text="豎排第一個(gè)"
android:textSize="17sp"
android:textColor="#000000"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="2"
android:text="豎排第二個(gè)"
android:textSize="17sp"
android:textColor="#000000"/>
</LinearLayout>
二、相對(duì)布局RelativeLayout
相對(duì)布局的視圖位置由平級(jí)或上級(jí)視圖決定,用于確定下級(jí)視圖位置的參考物分兩種:
- 與該視圖自身平級(jí)的視圖
- 該視圖的上級(jí)視圖
如果不設(shè)定下級(jí)視圖的參照物,那么下級(jí)視圖默認(rèn)顯示在RelativeLayout內(nèi)部的左上角。
相對(duì)位置的取值

例:
<TextView
android: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"/>
<TextView
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"/>
<TextView
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"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:layout_alignParentLeft="true"
android:text="上級(jí)左邊對(duì)齊"
android:textSize="11sp"
android:textColor="#000000"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:layout_toLeftOf="@id/tv_center"
android:layout_alignTop="@id/tv_center"
android:text="中間左邊"
android:textSize="11sp"
android:textColor="#000000"/>
<TextView
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"/>
三、網(wǎng)格布局GridLayout
網(wǎng)格布局支持多行多列的表格排列。
網(wǎng)格布局默認(rèn)從左往右、從上到下排列,新增兩個(gè)屬性:
- columnCount屬性:指定網(wǎng)格的列數(shù),即每行能放多少視圖。
- rowCount屬性:指定網(wǎng)格行數(shù),即每列能放多少視圖。
例:
<?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">
<TextView
android:layout_width="0dp"http://設(shè)置權(quán)重,占滿屏幕
android:layout_columnWeight="1"
android:layout_height="60dp"
android:background="#ffcccc"
android:text="淺紅色"
android:gravity="center"http://設(shè)置文字位于網(wǎng)格中間
android:textColor="#000000"
android:textSize="17sp"/>
<TextView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_columnWeight="1"
android:background="#ffaa00"
android:text="淺紅色"
android:gravity="center"
android:textColor="#000000"
android:textSize="17sp"/>
<TextView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_columnWeight="1"
android:background="#00ff00"
android:text="綠色"
android:gravity="center"
android:textColor="#000000"
android:textSize="17sp"/>
<TextView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_columnWeight="1"
android:background="#660066"
android:text="深紫色"
android:gravity="center"
android:textColor="#000000"
android:textSize="17sp"/>
</GridLayout>
四、滾動(dòng)視圖ScrollView
有兩種:
- ScrollView:垂直方向的滾動(dòng)視圖,垂直方向滾動(dòng)時(shí),layout_width屬性值設(shè)置為match_parent,layout_height 屬性值設(shè)置為wrap_content。
- HorizontalScrollView:水平方向的滾動(dòng)視圖,水平方向滾動(dòng)時(shí),layout_width屬性值設(shè)置為wrap_content,layout_height屬性值設(shè)置為match_parent。
例:
水平方向兩個(gè)View共600dp,超出屏幕,所以上級(jí)視圖使用HorizontalScrollView,寬度自適應(yīng),高度跟隨上級(jí)視圖。
<?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">
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="200dp">
<!-- 水平方向的線性布局-->
<LinearLayout
android:layout_width="wrap_content"http://寬度自適應(yīng)
android:layout_height="match_parent"http://高度跟隨上級(jí)視圖
android:orientation="horizontal">//水平排列
<View
android:layout_width="300dp"http://寬度自定義,超出屏幕
android:layout_height="match_parent"
android:background="#aaffff"/>
<View
android:layout_width="300dp"
android:layout_height="match_parent"
android:background="#ffff00"/>
</LinearLayout>
</HorizontalScrollView>
<!-- 垂直方向的線性布局-->
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="400dp"
android:background="#aaffff"/>
<View
android:layout_width="match_parent"
android:layout_height="400dp"
android:background="#ffff00"/>
</LinearLayout>
</ScrollView>
</LinearLayout>
到此這篇關(guān)于Android四種常見布局方式示例教程的文章就介紹到這了,更多相關(guān)Android布局內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
android實(shí)現(xiàn)漢字轉(zhuǎn)拼音功能 帶多音字識(shí)別
這篇文章主要介紹了android實(shí)現(xiàn)漢字轉(zhuǎn)拼音功能,帶多音字識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
Android Studio修改Log信息顏色的實(shí)現(xiàn)
這篇文章主要介紹了Android Studio修改Log信息顏色的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Android文件下載進(jìn)度條的實(shí)現(xiàn)代碼
我們今天開始學(xué)習(xí)的是下載進(jìn)度的實(shí)現(xiàn)。今天的這段代碼是網(wǎng)上找的,自己做了些小改,通過模擬器測試。文件下載進(jìn)度條控制(就是為了高清壁紙加個(gè)進(jìn)度條),自己研究了好久,但是進(jìn)度條只能顯示緩存寫入文件的進(jìn)度,不能顯示下載進(jìn)度。找了好久,終于找到一段用的代碼,所以記錄下來,大家分享2013-01-01
android開發(fā)教程之使用looper處理消息隊(duì)列
這篇文章主要介紹了通過HandlerThread對(duì)象來實(shí)現(xiàn)使用looper處理消息隊(duì)列的功能,大家參考使用吧2014-01-01
Android 中RecyclerView通用適配器的實(shí)現(xiàn)
這篇文章主要介紹了Android 中RecyclerView通用適配器的實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2017-03-03
Android中activity跳轉(zhuǎn)按鈕事件的四種寫法
這篇文章主要介紹了Android中activity跳轉(zhuǎn)按鈕事件的四種寫法,下文中包括四個(gè)activity的內(nèi)容詳解,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10
python只需30行代碼就能記錄鍵盤的一舉一動(dòng)
這篇文章主要介紹了如何用python只寫30行代碼就能記錄鍵盤的一舉一動(dòng),感興趣的同學(xué)快來看看吧,新手小白也能掌握2021-08-08
Android基于高德地圖完全自定義Marker的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Android基于高德地圖完全自定義Marker的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07

