1. 程式人生 > >Android中LinearLayout佈局的Weight屬性詳解

Android中LinearLayout佈局的Weight屬性詳解

線性佈局:

線性佈局每行每列只能放一個控制元件;

以下只以分配螢幕寬度Width為例,Height同理可得;

weight預設值是0;

建議:只有將控制元件寬度設定為0,才是完美的按比例分配;

總結:不管是控制元件寬度是多少,如果有內容大小螢幕就優先將空間分配給內容大小,然後再將剩餘的空間按比例分配給各個控制元件;

eg.當控制元件寬度 = 0,控制元件個數 = n.(黃色):
match_parent - 0*n = 剩餘空間
剩餘空間按比例分配,分配結果 + 0

eg.當控制元件寬度 = wrap_content,控制元件個數 = n.(紅色):
match_parent - wrap_content*n = 剩餘空間
剩餘空間按比例分配,分配結果 + wrap_content

eg.當控制元件寬度 = match_parent,控制元件個數 = n.(藍色):
match_parent - match_parent*n = 剩餘空間(此時這個值為負值)
剩餘空間按比例分配,分配結果 + match_parent

eg.當控制元件寬度 = m,控制元件個數 = n.(紫色):
match_parent - m*n = 剩餘空間
剩餘空間按比例分配,分配結果 + m

這裡寫圖片描述

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
android:layout_height="80dp" android:layout_alignParentTop="true" android:layout_alignParentStart="true" android:id="@+id/linearLayout" android:background="#dfad4f"> <Button android:layout_width="0dp" android:layout_height="wrap_content"
android:text="1" android:id="@+id/button" android:layout_weight="1"/> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:text="2" android:id="@+id/button2" android:layout_weight="2"/> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="80dp" android:layout_below="@+id/linearLayout" android:layout_alignParentStart="true" android:id="@+id/linearLayout2" android:background="#c22222"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" android:id="@+id/button3" android:layout_weight="1"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2" android:id="@+id/button4" android:layout_weight="2"/> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="80dp" android:layout_below="@+id/linearLayout2" android:layout_alignParentStart="true" android:id="@+id/linearLayout3" android:background="#28c5da"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="1" android:id="@+id/button5" android:layout_weight="1"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="2" android:id="@+id/button6" android:layout_weight="2"/> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="80dp" android:layout_below="@+id/linearLayout3" android:layout_alignParentStart="true" android:id="@+id/linear_layout" android:background="#bd1db0"> <Button android:layout_width="300dp" android:layout_height="wrap_content" android:text="1" android:id="@+id/button7" android:layout_weight="1"/> <Button android:layout_width="300dp" android:layout_height="wrap_content" android:text="2" android:id="@+id/button8" android:layout_weight="2"/> </LinearLayout>

相關推薦

AndroidLinearLayout佈局Weight屬性

線性佈局: 線性佈局每行每列只能放一個控制元件; 以下只以分配螢幕寬度Width為例,Height同理可得; weight預設值是0; 建議:只有將控制元件寬度設定為0,才是完美的按比例分配; 總結:不管是控制元件寬度是多少,如果有內容大小螢幕就優先將

Androidmeasure過程、WRAP_CONTENT以及xml佈局檔案解析流程淺析(上)

  繪製流程的三個步驟,即:                      1、  measure過程 --- 測量過程                      2、 layout 過程     --- 佈局過程                      3、 draw 過程

react native textInput的value屬性

hold eric 工作 als size 保持 chang 無奈 bsp TextInput用法就不多講了,主要記錄下遇到的一個怪問題。 背景:項目需要開發一個充值頁面,需要一個輸入框,然後幾個按鈕,輸入框是允許用戶自己輸入任意金額,按鈕是可以讓用戶快捷選擇金

Objective-C@property的所有屬性

1,assign : 簡單賦值,不更改索引計數 假設你用malloc分配了一塊記憶體,並且把它的地址賦值給了指標a,後來你希望指標b也共享這塊記憶體,於是你又把a賦值給(assign)了b。此時a 和b指向同一塊記憶體,請問當a不再需要這塊記憶體,能否直接釋放它?答案是否定

Flex佈局 Flexbox屬性

Flex佈局官方稱為CSS Flexble Box佈局模型是CSS3為了提高元素在容器中的對齊、方向、順序,甚至它們是動態的或者不確定大小的新佈局模型。Flex容器的主要特徵是能夠調整其子元素在不同的螢幕大小中能夠用最適合的方法填充合適的空間 。 很多的設計師和開發者發

Android匯入的java包

 Android Java包在實際應程式開發中的作用是非常重要的。對於初學者來說必須要將這些包中的內容做一個詳細的瞭解,以方便我們將來的應用。 熟悉Android作業系統的朋友都知道,開發Android應用程式基本上使用的都是Java語言。那麼要想靈活的應用這一系統,就

Android聯絡人和通話記錄(2)

  在文章Android中聯絡人和通話記錄詳解(1)中對通話記錄進行了分析,本章將對聯絡人的資料庫表、欄位以及Insert,Query,Delelte,Update四大基本資料操作進行分析。   與聯

HttpContent-Type等屬性

前言 一直以來對HTTP請求中各種屬性一知半解,偶然在部落格中找到一篇,特意摘錄過來方便自己以後檢視. 正文 敬請關注部落格,後期不斷更新優質博文,謝謝 這裡講解Content-Type的可用值,以及在spring MVC中如何

java的Calendar時間屬性

// 基本用法,獲取年月日時分秒星期 @Test public void test1() { // 獲取年 int year = calendar.get(Calendar.YEAR); // 獲取月,這裡需要需要月份的範圍為0~11,因此獲取月份的時候需要+1才是當前月份值 int month = cale

Android聯絡人和通話記錄(聯絡人的增刪改查)(3)

    在上一章 Android中聯絡人和通話記錄詳解(2)中分析了聯絡人相關的表和欄位,在這一章中將分析聯絡人相關的基本資料操作(Insert,Query,Update,Delete)。    1.新增(Insert)      從contacts,data,mimety

Android圖片的三級快取

圖片的三級快取機制一般是指應用載入圖片的時候,分別去訪問內容,檔案,網路獲取圖片的一種行為。 一、三級快取流程圖 三級快取流程圖 二、程式碼框架搭建 這裡我仿造 Picasso 的載入圖片程式碼,也做出了with,load,into等方法。 2.1 with(c

Android 使用MediaRecorder進行錄影(視訊錄製)

在這裡給出自己的一個測試DEMO,裡面註釋很詳細。簡單的視訊錄製功能. package com.demo; import java.io.IOException; import android.app.Activity; import android

安卓開發學習之005 LinearLayoutWeight/measureWithLargestChild

本文主要介紹LinearLayout中分隔線Weight的使用方法 涉及到以下幾點內容: 佈局繪製過程 遍歷檢視 在onCreate()方法中獲取View的寬度和高度 android:measureWithLargestChild使用說明 weight及

Android記憶體洩漏超級精煉

一、前期基礎知識儲備 (1)什麼是記憶體? JAVA是在JVM所虛擬出的記憶體環境中執行的,JVM的記憶體可分為三個區:堆(heap)、棧(stack)和方法區(method)。 棧(stack):是簡單的資料結構,但在計算機中使用廣泛。棧最顯著的特徵是:LIF

Android的介面回撥,回撥機制:以Activity和Adapter傳遞資料為例。

首先解決啥是回撥: 我覺得這個例子比較好:某天,我打電話向你請教問題,當然是個難題,你一時想不出解決方法,我又不能拿著電話在那裡傻等,於是我們約定:等你想出辦法後打手機通知我,這樣,我就掛掉電話辦其它事情去了。過了XX分鐘,我的手機響了,你興高采烈的說問題已經搞定,應該

android關於shape的gradient屬性

安卓剛入門,接觸專案過程中用到了drawable中的shape,看文件過程中gradient屬性不是很理解。本著站在巨人肩膀上學習的態度,上網找資料。估計開啟方式不對,找到資料甚少,只能自己動手,當做筆記,有錯請指正,謝謝~ 首先文件介紹: <gradientan

Android的Style、Theme已經發展史

Style介紹 style就像單詞意思一樣,風格,這裡面是屬性的集合,如果頁面中有許多控制元件的屬性值相同那麼就可以把這些屬性抽出來放到style裡面,定義也很簡單,在values檔案下的styles裡面建立就可以了。 例如: Styl

android自定義控制元件屬性

1. reference:參考某一資源ID。      (1)屬性定義:               <declare-styleable name = "名稱">                    <attr name = "background"

Android沉浸式狀態列

前言 地上斷了翅的蝶,霧散之後的滿月,原來愛跟心碎,都可以很細節。 簡介 這兩天時間比較充裕,所以實現了專案裡的沉浸式狀態列效果,這樣可以使得我們的app主題顯得更加統一。所以今天就帶領大家實現下不同情況下的狀態列效果顯示。 一 狀態列顏色改變

Android佈局-LinearLayout屬性

序 LinearLayout,其實就是線性佈局,結構層次相對來說簡單非常明瞭,只有橫和豎2條直線的方向。這裡主要記錄下LinearLayout的重要屬性,以及使用時需要注意的事項。 1.排列方式orientation 在XML佈局中: android:o