首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android LinearLayout 權重佈局:頂部、中間、底部三區域自適應

     編輯:程式設計綜合問答

需求

垂直 LinearLayout:頂部按鈕固定高度、底部按鈕固定高度、中間區域佔滿剩餘空間。

錯誤寫法

<Button android:layout_height="wrap_content" />  <!-- 頂部 -->
<Button android:layout_height="fill_parent" />  <!-- 中間,錯誤:會撐滿整個父佈局 -->
<Button android:layout_height="wrap_content" />  <!-- 底部,不顯示 -->

正確寫法:layout_weight + 0dp 高度

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="1">

    <Button
        android:id="@+id/btn_top"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.1"
        android:text="Save" />

    <Button
        android:id="@+id/btn_middle"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.8"
        android:text="Previous" />

    <Button
        android:id="@+id/btn_bottom"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.1"
        android:text="Next" />

</LinearLayout>

關鍵點

  • 子視圖高度設為 0dp,完全由 layout_weight 決定比例。
  • weightSum 可選,明確總權重為 1,便於按百分比分配。
  • 若中間需包含可滾動內容,外層套 ScrollView 或改用 ConstraintLayout 鏈式佈局。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved