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

Android 讓 3 個 Button 等寬佔滿一行佈局的實現方法

     編輯:程式設計綜合問答

在 Android 中實現 3 個 Button 等寬佔滿一行,核心是使用 LinearLayout 配合 layout_weight="1" 和 layout_width="0dp" (或 match_parent 配合 weight)。

標準 XML 實現


 <!-- 可選:顯式聲明權重總和 -->
    
    

核心原理

  • layout_width="0dp":基礎寬度為 0,完全由 weight 決定
  • layout_weight="1":分配剩余空間的權重,相同值即等寬
  • weightSum="3":可選,顯式指定總權重,防止子視圖 weight 異常影響

代碼動態實現


LinearLayout container = new LinearLayout(this);
container.setOrientation(LinearLayout.HORIZONTAL);
container.setWeightSum(3);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
    0, LinearLayout.LayoutParams.WRAP_CONTENT, 1f); // width=0, weight=1

for (int i = 0; i < 3; i++) {
    Button btn = new Button(this);
    btn.setText("按鈕 " + (i+1));
    btn.setLayoutParams(params);
    container.addView(btn);
}

不等寬分配示例



常見錯誤避坑

錯誤寫法後果修正
layout_width="wrap_content" + weight先按內容寬度,再分配剩余,不等寬改為 0dp
layout_width="match_parent" + weight每個佔滿父寬度,擠出屏幕改為 0dp
忘記 orientation="horizontal"垂直排列,weight 分配高度添加屬性

現代替代:ConstraintLayout (更靈活)



    
    

優勢:扁平層級、支持指引線、百分比、鏈式佈局等高級功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved