Android LinearLayout線性佈局詳解

来源:https://www.cnblogs.com/xqz0618/archive/2020/03/31/linearlayout.html
-Advertisement-
Play Games

為了更好地管理Android應用的用戶界面里的各組件,Android提供了佈局管理器。通過使用佈局管理器,Android應用圖形用戶界面具有良好的平臺無關性。推薦使用佈局管理器來管理組件的分佈、大小,而不是直接設置組件的位置和大小。可以使用佈局管理器嵌套佈局管理器,即也可作為一個UI組件來使用。 L ...


  為了更好地管理Android應用的用戶界面里的各組件,Android提供了佈局管理器。通過使用佈局管理器,Android應用圖形用戶界面具有良好的平臺無關性。推薦使用佈局管理器來管理組件的分佈、大小,而不是直接設置組件的位置和大小。可以使用佈局管理器嵌套佈局管理器,即也可作為一個UI組件來使用。

  LinearLayout可以控制組件橫向排列或者縱向排列,內容不會換行,超出屏幕部分將不會顯示出來。

 

學習圖解

 

LinearLayout 常用XML屬性及方法

【屬性一】orientation 設置子組件的排列方式(單選)

  XML: android:orientation="horizontal"

  

     horizontal:橫向排列

     vertical:縱向排列

   JAVA :linearLayout.setOrientation(LinearLayout.VERTICAL); 

      LinearLayout.HORIZONTAL 橫向排列

  

    LinearLayout.VERTICAL 縱向排列 

  

 

【屬性二】gravity 設置子組件的對齊方式(多選

   XML: android:gravity="center"

   

   JAVA :linearLayout.setGravity(Gravity.CENTER);

  

 

【屬性三】baselineAligned 設置子元素基準線對棄,預設為true

  基準線:

    打開的英語練習本,那條紅線就是基準線  

    

    

   XML: android:baselineAligned="false"  

  

   JAVA: linearLayout.setBaselineAligned(true);

代碼:true
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:baselineAligned="true"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/holo_red_light"
            android:padding="20dp"
            android:text="text1"
            android:textSize="30sp">

        </TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/holo_blue_light"
            android:padding="10dp"
            android:text="text2"
            android:textSize="16sp">

        </TextView>
    </LinearLayout>
  效果:

   

   

 

【搭配屬性三】baselineAlignedChildIndex LinearLayout的基準線以他的第幾個子元素為準,下標從0開始

  一個LinearLayout 裡面有很多 textview ,每一個 textview 都有自己的基準線,那麼LinearLayout可能也是另一個LinearLayout的子元素,作為子元素 baselineAlignedChildIndex 就決定這他的一個基準線

  XML:android:baselineAlignedChildIndex="0"
  JAVA:linearLayout.setBaselineAlignedChildIndex(0);
  代碼:⭐註意內部的LinearLayout,後面將在 第二個LinearLayout上添加 baselineAlignedChildIndex ,搭配  baselineAligned="false" 使用
<LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:baselineAligned="false"
        android:orientation="horizontal">

  
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/holo_blue_light"
            android:text="這是text2"
            android:textSize="20sp">

        </TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/holo_red_light"
            android:text="這是text1"
            android:textSize="30sp">

        </TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/holo_green_dark"
            android:text="這是text2"
            android:textSize="15sp">

        </TextView>
    </LinearLayout>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="這是text4"
        android:textSize="25sp"
        android:background="@android:color/holo_orange_light"
        >

    </TextView>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/black"
        android:text="text"
        android:textColor="@android:color/white"
        android:textSize="15sp">

   </TextView>
</LinearLayout>
  效果:
  

   

   

   

  ⭐ 總結

  • 預設LinearLayout是沒有基準線的,從圖一和圖三的對比可知。
  • 下標從0開始三個子組件,最大index為2,超過2時佈局將不顯示
  • 這個屬性是用來決定當前LinearLayout的基準線時以哪個子組件為準的

 

  

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 慢查詢日誌概述 所謂慢查詢日誌,就是用於記錄MySQL中響應時間超過設定閾值的SQL語句,通過打開慢查詢開關,MySQL會將大於閾值的SQL記錄在日誌中,以便於分析性能。 慢查詢日誌選項預設是關閉的,如果要開啟,則需要手動設置。 慢查詢日誌選項不建議一直開啟,因為記錄日誌意味著IO操作,本身對性能有 ...
  • 前言 為了避免單點故障,我們需要將數據複製多份部署在多台不同的伺服器上,即使有一臺伺服器出現故障其他伺服器依然可以繼續提供服務 作用: 數據備份 擴展讀性能(讀寫分離) 複製方式: 全量複製 部分複製 實現方式 1、一主二撲 A(B、C) 一個Master兩個Slave 2、薪火相傳(去中心化) A ...
  • 解決方法可用以下命令: 命令行登錄mysql; mysql>use mysql; mysql>ALTER USER root IDENTIFIED WITH mysql_native_password BY '你的密碼'; mysql>FLUSH PRIVILEGES; 網上說用: MySql 8. ...
  • 索引是一種加快查詢速度的數據結構,常用索引結構有hash、B Tree和B+Tree。本節通過分析三者的數據結構來說明為啥Mysql選擇用B+Tree數據結構。 數據結構 Hash hash是基於哈希表完成索引存儲,哈希表特性是數據存放是散列的。 優點: 等值查詢快,通過hash值直接定位到具體的數 ...
  • 侵刪。不足之處請諒解。 工作中遇到的問題: 不會就百度,多百度幾次總會有自己需要的。比如這個曲線統計,我也是借用了博客里的各位大大,然後按照自己項目需求做的,頁面給前端懟數據去就行,下麵是步驟 1,用戶統計曲線圖,如果其中某一天沒有數據,曲線圖的日期鏈接不起來,如圖: 我的解決方法:靠百度。首先生成 ...
  • eg.一個用戶可有擁有多個訂單,一個訂單隻能屬於一個用戶,一對多,在tb_order中使用外鍵user_id關聯tb_user的id。 當刪除、更新tb_user中的主鍵時,與之關聯的tb_order要受到影響,比如 #tb_user中的一條記錄 1 chy abcd #tb_order中一條記錄, ...
  • 近300頁實用乾貨總結,幫你解決 Flink 實戰應用難題!《Apache Flink電子書合輯》收錄來自bilibili、美團點評、小米、OPPO、快手、Lyft、Netflix等一線大廠實時計算平臺及實時數倉實踐案例,更有來自阿裡巴巴及Apache Flink核心貢獻者們一線實戰經驗總結。 頁面 ...
  • 現在的大部分播放器都實現了手勢上下滑動調節音量,左右滑動快進和後退,在大部分app中幾乎是主流配置了。如果app中提供了視頻功能,而沒有這些基本的功能,用戶體驗就很差。由於平常使用5+ Runtime,配合H5的Video標簽實現起來也不麻煩。主要是為了測試hls.js,播放m3u8地址就做了一個d ...
一周排行
    -Advertisement-
    Play Games
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...