網站首頁 編程語言 正文
一、線性布局LinearLayout
有兩種排序方式
- orientation屬性值為horizontal時,內部視圖在水平方向從左往右排列。
- orientation屬性值為vertical時,內部視圖在垂直方向從上往下排列。
如果不指定orientation屬性,則LinearLayout默認水平方向排列。
線性布局的權重
指線性布局的下級視圖各自擁有多大比例的寬高。
屬性名為layout_weight,但該屬性不在LinearLayout節點設置,而在線性布局的直接下級視圖設置,表示改下級視圖占據的寬高比例。
- layout_width為0dp時,表示水平方向的寬度比例
- layout_height為0dp時,表示垂直方向的高度比例
例:
第一個線性布局:width = 0dp 說明在水平方向設置寬度比例,weight = 1,占據weight總數的1/2,則占據一半空間。
第二個線性布局:height = 0dp 說明在垂直方向設置寬度比例,weight = 1,占據weight總數的1/3,則占據三分之一空間。
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="0dp"http://寬度為0dp,通過權重設置寬度比例 android:layout_height="wrap_content" android:layout_weight="1"http://weight為1,下面的weight也為1,占1/2,即寬度比例占1/2 android:text="橫排第一個" android:textSize="17sp" android:textColor="#000000"/> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="橫排第二個" 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,通過權重設置高度比例 android:layout_weight="1"http://weight為1,下面的weight為2,占1/3,即寬度比例占1/3 android:text="豎排第一個" android:textSize="17sp" android:textColor="#000000"/> <TextView android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="2" android:text="豎排第二個" android:textSize="17sp" android:textColor="#000000"/> </LinearLayout>
二、相對布局RelativeLayout
相對布局的視圖位置由平級或上級視圖決定,用于確定下級視圖位置的參考物分兩種:
- 與該視圖自身平級的視圖
- 該視圖的上級視圖
如果不設定下級視圖的參照物,那么下級視圖默認顯示在RelativeLayout內部的左上角。
相對位置的取值
例:
<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="上級左邊對齊" 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"/>
三、網格布局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"> <TextView android:layout_width="0dp"http://設置權重,占滿屏幕 android:layout_columnWeight="1" android:layout_height="60dp" android:background="#ffcccc" android:text="淺紅色" android:gravity="center"http://設置文字位于網格中間 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>
四、滾動視圖ScrollView
有兩種:
- ScrollView:垂直方向的滾動視圖,垂直方向滾動時,layout_width屬性值設置為match_parent,layout_height 屬性值設置為wrap_content。
- HorizontalScrollView:水平方向的滾動視圖,水平方向滾動時,layout_width屬性值設置為wrap_content,layout_height屬性值設置為match_parent。
例:
水平方向兩個View共600dp,超出屏幕,所以上級視圖使用HorizontalScrollView,寬度自適應,高度跟隨上級視圖。
<?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://寬度自適應 android:layout_height="match_parent"http://高度跟隨上級視圖 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>
原文鏈接:https://blog.csdn.net/Tir_zhang/article/details/126783783
相關推薦
- 2022-12-27 python利用logging模塊實現根據日志級別打印不同顏色日志的代碼案例_python
- 2022-12-26 Qt利用QSortFilterProxyModel代理實現自定義排序與聯合過濾_C 語言
- 2022-03-14 使用npm安裝淘寶鏡像(npm配置淘寶鏡像)
- 2022-01-12 解決element-ui 日期選擇器提交后臺數據不準確問題
- 2023-06-13 react實現組件狀態緩存的示例代碼_React
- 2022-02-07 laravel生成二維碼/生成base64二維碼流、simple-qrcode擴展
- 2022-09-26 車載藍牙PIN碼是什么
- 2022-12-23 Sql?Server?壓縮數據庫日志文件的方法_MsSql
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支