gravity`(控制 View 內部內容的對齊方式)

文章目錄

    • **1. 常用取值**
      • **示例**
    • **2. `layout_gravity`(控制 View 在父容器中的對齊方式)**
      • **常用取值**
      • **示例**
    • **3. `gravity` vs `layout_gravity` 對比**
    • **4. 注意事項**
    • **5. 總結**

在這里插入圖片描述

作用對象:當前 View 的內部內容(如 TextView 的文本、Button 的文字、LinearLayout 的子控件等)。
適用控件TextViewButtonLinearLayoutRelativeLayout 等幾乎所有 View。

1. 常用取值

說明
left / start左對齊(start 適配 RTL 布局)
right / end右對齊(end 適配 RTL 布局)
top頂部對齊
bottom底部對齊
center水平 + 垂直居中
center_horizontal水平居中
center_vertical垂直居中
fill / fill_horizontal / fill_vertical填充(較少使用)

示例

<!-- TextView 的文本居中 -->
<TextViewandroid:layout_width="200dp"android:layout_height="100dp"android:text="Hello World"android:gravity="center" />  <!-- 文本在 TextView 內部居中 --><!-- LinearLayout 的子控件垂直居中 -->
<LinearLayoutandroid:layout_width="match_parent"android:layout_height="200dp"android:gravity="center_vertical">  <!-- 所有子控件垂直居中 --><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button 1" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button 2" />
</LinearLayout>

2. layout_gravity(控制 View 在父容器中的對齊方式)

作用對象:當前 View 在其父容器 中的位置(如 Button 在 LinearLayout 中的對齊方式)。
適用控件:主要用于 LinearLayoutFrameLayout 的子控件(RelativeLayoutConstraintLayout 一般不用)。

常用取值

說明
left / start靠左(start 適配 RTL)
right / end靠右(end 適配 RTL)
top靠頂部
bottom靠底部
center居中
center_horizontal水平居中
center_vertical垂直居中
fill_horizontal水平填充(拉伸)
fill_vertical垂直填充(拉伸)

示例

<!-- FrameLayout 中的 Button 居中 -->
<FrameLayoutandroid:layout_width="match_parent"android:layout_height="200dp"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Click Me"android:layout_gravity="center" />  <!-- Button 在 FrameLayout 中居中 -->
</FrameLayout><!-- LinearLayout 中的 Button 靠右 -->
<LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button 1" /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button 2"android:layout_gravity="end" />  <!-- Button 2 靠右 -->
</LinearLayout>

3. gravity vs layout_gravity 對比

屬性作用對象適用場景示例
gravity當前 View 的內部內容TextView 文本居中、LinearLayout 子控件對齊android:gravity="center"
layout_gravity當前 View 在其父容器中的位置Button 在 FrameLayout 居中、View 在 LinearLayout 靠右android:layout_gravity="center"

4. 注意事項

  1. layout_gravityLinearLayout 中的限制

    • 如果 LinearLayouthorizontal 方向,layout_gravity 只能控制 垂直方向top/bottom/center_vertical)。
    • 如果 LinearLayoutvertical 方向,layout_gravity 只能控制 水平方向left/right/center_horizontal)。
  2. ConstraintLayout 替代方案

    • ConstraintLayout 一般不使用 layout_gravity,而是用 app:layout_constraintXXX_toXXXOf="parent" 控制位置:

      <Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" />
      
  3. gravitylayout_gravity 可以組合使用

    <LinearLayoutandroid:layout_width="match_parent"android:layout_height="200dp"android:gravity="center">  <!-- 子控件整體居中 --><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Button"android:layout_gravity="end" />  <!-- 但 Button 自己靠右 -->
    </LinearLayout>
    

5. 總結

  • gravity → 控制 當前 View 內部 的對齊(如文本、子控件)。
  • layout_gravity → 控制 當前 View 在父容器 中的對齊(如 Button 在 LinearLayout 中的位置)。
  • LinearLayout 方向影響 layout_gravity 的有效方向
  • ConstraintLayout 用約束替代 layout_gravity

掌握這兩個屬性可以更靈活地控制 Android 布局! 🚀


在 Android 布局中,layout_weight 是用于 LinearLayout 的一個屬性,它允許子視圖按照權重(weight)分配剩余空間,常用于實現比例布局(如按比例分配寬度或高度)。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76914.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76914.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76914.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Go:使用共享變量實現并發

競態 在串行程序中&#xff0c;步驟執行順序由程序邏輯決定&#xff1b;而在有多個 goroutine 的并發程序中&#xff0c;不同 goroutine 的事件先后順序不確定&#xff0c;若無法確定兩個事件先后&#xff0c;它們就是并發的。若一個函數在并發調用時能正確工作&#xff0c;稱…

Vue3 SSR Serverless架構革命:彈性計算與量子加速

一、全維度Serverless SSR架構 1.1 蜂巢式彈性調度系統 1.2 冷啟動時間優化表 優化策略Node.js冷啟(ms)Deno冷啟(ms)Bun冷啟(ms)裸啟動1800960420預編譯二進制650380210內存快照預熱22016090WASM實例池15011075量子狀態預載453832 二、邊緣渲染協議升級 2.1 流式SSR響應協議…

FPAG IP核調用小練習

一、調用步驟 1、打開Quartus 右上角搜索ROM&#xff0c;如圖所示 2、點擊后會彈出如圖所示 其中文件路徑需要選擇你自己的 3、點擊OK彈出如圖所示 圖中紅色改為12與1024 4、然后一直點NEXT&#xff0c;直到下圖 這里要選擇后綴為 .mif的文件 5、用C語言生成 .mif文件 //…

Spring Cloud 服務間調用深度解析

前言 在構建微服務架構時&#xff0c;服務間的高效通信是至關重要的。Spring Cloud 提供了一套完整的解決方案來實現服務間的調用、負載均衡、服務發現等功能。本文將深入探討 Spring Cloud 中服務之間的調用機制&#xff0c;并通過源碼片段和 Mermaid 圖表幫助讀者更好地理解…

AF3 generate_chain_data_cache腳本解讀

AlphaFold3 generate_chain_data_cache 腳本在源代碼的scripts文件夾下。該腳本從指定目錄中批量解析 mmCIF/PDB 文件的工具,并將每個鏈的基本信息(序列、分辨率、是否屬于聚類等)提取并寫入 JSON 文件,主要用于后續蛋白質建模、過濾或訓練數據準備。 源代碼: import ar…

vue項目打包部署到maven倉庫

需要的資源文件&#xff0c;都放在根目錄下&#xff1a; 1. versionInfo.js const fs require(fs) const path require(path) const mkdirp require(mkdirp) const spawn require(child_process).spawnconst packageObj require(./package.json) const versionNo packa…

MegaTTS3: 下一代高效語音合成技術,重塑AI語音的自然與個性化

在近期的發布中&#xff0c;浙江大學趙洲教授團隊與字節跳動聯合推出了革命性的第三代語音合成模型——MegaTTS3&#xff0c;該模型不僅在多個專業評測中展現了卓越的性能&#xff0c;還為AI語音的自然性和個性化開辟了新的篇章。 MegaTTS3技術亮點 零樣本語音合成 MegaTTS3采用…

【教程】PyTorch多機多卡分布式訓練的參數說明 | 附通用啟動腳本

轉載請注明出處&#xff1a;小鋒學長生活大爆炸[xfxuezhagn.cn] 如果本文幫助到了你&#xff0c;歡迎[點贊、收藏、關注]哦~ 目錄 torchrun 一、什么是 torchrun 二、torchrun 的核心參數講解 三、torchrun 會自動設置的環境變量 四、torchrun 啟動過程舉例 機器 A&#…

計算機視覺——基于 Yolov8 目標檢測與 OpenCV 光流實現目標追蹤

1. 概述 目標檢測&#xff08;Object Detection&#xff09;和目標追蹤&#xff08;Object Tracking&#xff09;是計算機視覺中的兩個關鍵技術&#xff0c;它們在多種實際應用場景中發揮著重要作用。 目標檢測指的是在靜態圖像或視頻幀中識別出特定類別的目標對象&#xff0…

MySQL——流程控制

一、IF條件語句 語法 IF condition THENstatements; ELSEIF condition THENstatements; ELSEstatements; END IF; 判斷成績等級 # 判斷成績等級 # 輸入學生的編號,取出學生的第一門課&#xff0c;然后判斷當前的課程的等級 drop procedure if exists p2; delimiter $$ crea…

C# + Python混合開發實戰:優勢互補構建高效應用

文章目錄 前言&#x1f94f;一、典型應用場景1. 桌面應用智能化2. 服務端性能優化3. 自動化運維工具 二、四大技術實現方案方案1&#xff1a;進程調用&#xff08;推薦指數&#xff1a;★★★★☆&#xff09;方案2&#xff1a;嵌入Python解釋器&#xff08;推薦指數&#xff1…

MLflow 入門

官方主頁 MLflow | MLflow官方文檔 MLflow: A Tool for Managing the Machine Learning Lifecycle | MLflow 0. 簡介 MLflow 是一個開源平臺&#xff0c;專門為了幫助機器學習的從業者和團隊處理機器學習過程中的復雜性而設計。MLflow 關注機器學習項目的完整生命周期&#x…

【藍橋杯選拔賽真題101】Scratch吐絲的蜘蛛 第十五屆藍橋杯scratch圖形化編程 少兒編程創意編程選拔賽真題解析

目錄 scratch吐絲的蜘蛛 一、題目要求 1、準備工作 2、功能實現 二、案例分析 1、角色分析 2、背景分析 3、前期準備 三、解題思路 四、程序編寫 五、考點分析 六、推薦資料 1、scratch資料 2、python資料 3、C++資料 scratch吐絲的蜘蛛 第十五屆青少年藍橋杯s…

智譜最新模型GLM4是如何練成的

寫在前面 這篇博客將基于《ChatGLM: A Family of Large Language Models from GLM-130B to GLM-4 All Tools》,深入剖析 GLM-4 系列在**模型架構設計、預訓練、后訓練(對齊)、以及關鍵技術創新(如長上下文處理、Agent 能力構建)**等環節的實現邏輯與設計考量,帶你全面了…

第二屆電氣技術與自動化工程國際學術會議 (ETAE 2025)

重要信息 2025年4月25-27日 中國廣州 官網: http://www.icetae.com/ 部分 征稿主題 Track 1&#xff1a;電氣工程 輸配電、電磁兼容、高電壓和絕緣技術、電氣工程、電氣測量、電力電子及其應用、機電一體化、電路與系統、電能質量和電磁兼容性、電力系統及其自…

設備調試--反思與總結

最近回顧項目&#xff0c; 發現&#xff1a;在調試過程中最耽誤時間的可能不是技術難度&#xff0c;而是慣性思維&#xff1b; 例如&#xff1a; 我寫can通信濾波器的時候&#xff0c;可能是不過濾的&#xff1b;是接收所有的id報文&#xff0c;然后用業務邏輯過濾&#xff08…

C++項目:高并發內存池_下

目錄 8. thread cache回收內存 9. central cache回收內存 10. page cache回收內存 11. 大于256KB的內存申請和釋放 11.1 申請 11.2 釋放 12. 使用定長內存池脫離使用new 13. 釋放對象時優化成不傳對象大小 14. 多線程環境下對比malloc測試 15. 調試和復雜問題的調試技…

深度學習入門:神經網絡的學習

目錄 1 從數據中學習1.1 數據驅動1.2 訓練數據和測試數據 2損失函數2.1 均方誤差2.2 交叉熵誤差2.3 mini-batch學習2.4 mini-batch版交叉熵誤差的實現2.5 為何要設定損失函數 3 數值微分3.1 數值微分3.3 偏導數 4 梯度4.1 梯度法4.2 神經網絡的梯度 5 學習算法的實現5.1 2層神經…

【第45節】windows程序的其他反調試手段上篇

目錄 引言 一、通過窗口類名和窗口名判斷 二、檢測調試器進程 三、父進程是否是Explorer 四、RDTSC/GetTickCount時間敏感程序段 五、StartupInfo結構的使用 六、使用BeingDebugged字段 七、 PEB.NtGlobalFlag,Heap.HeapFlags,Heap.ForceFlags 八、DebugPort:CheckRem…

Golang|select

文章目錄 多路監聽超時控制 多路監聽 如果selcet外面沒有for循環&#xff0c;則只會監聽一次&#xff0c;要實現一直監聽的話要加for循環但是如果要設置退出條件的話&#xff0c;break語句只會退出這個select而不會退出for循環 select也可以有default&#xff0c;用于不用等cha…