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

Android 代碼動態設置 RelativeLayout 子視圖對齊規則

     編輯:程式設計綜合問答

核心 API

RelativeLayout.LayoutParams.addRule(int verb) 及 addRule(int verb, int anchor) 對應 XML 中的 layout_alignParentRight、layout_toLeftOf 等屬性。

完整代碼範例

RelativeLayout container = new RelativeLayout(this);
RelativeLayout.LayoutParams containerParams = new RelativeLayout.LayoutParams(
        LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
container.setLayoutParams(containerParams);

Button btn1 = new Button(this);
btn1.setId(View.generateViewId()); // API 17+ 生成唯一 ID
btn1.setText("Left");

Button btn2 = new Button(this);
btn2.setText("Right");

// 關鍵:獲取 btn2 的 LayoutParams 並添加規則
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params2.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); // 對齊父右邊
// params2.addRule(RelativeLayout.LEFT_OF, btn1.getId()); // 或靠左於 btn1
btn2.setLayoutParams(params2);

container.addView(btn1);
container.addView(btn2);

注意事項

  • 調用 addRule 後**必須**重新 setLayoutParams 才能生效。
  • 被引用的錨點 View(如 btn1)必須已有 ID,且已加入同一父佈局或稍後加入。
  • API 17+ 使用 View.generateViewId() 避免 ID 衝突;舊版本可自定義正整數 ID 池。

常用規則常量

XML 屬性Java 常量
layout_alignParentRightRelativeLayout.ALIGN_PARENT_RIGHT
layout_toLeftOfRelativeLayout.LEFT_OF
layout_belowRelativeLayout.BELOW
layout_centerHorizontalRelativeLayout.CENTER_HORIZONTAL
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved