1
我有一個認爲是RelativeLayout
的孩子,我試圖修改Java中的佈局參數。我得到了LayoutParams
如下:RelativeLayout params AddRule不一致的工作?
RelativeLayout.LayoutParams dlp = (LayoutParams) dimBackground.getLayoutParams();
dlp.addRule(RelativeLayout.BELOW, currentTextView.getId());
//dlp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
dimBackground.setLayoutParams(dlp);
線dlp.addRule(RelativeLayout.BELOW, currentTextView.getId());
不改變dimBackground
的位置,但如果我去掉下面的線,然後dimBackground
將得到對齊父視圖的底部。
任何想法爲什麼第一條規則不起作用?
編輯:
至於建議,我想在XML中,仍然沒有運氣。下面是我的xml:
<RelativeLayout
android:id="@+id/dim_background_bottom"
android:layout_width="fill_parent"
android:layout_height="80dp"
android:layout_below="@+id/product_subtotal_row"
android:background="@color/gray_tint"
android:visibility="visible" />
2個評論這兩個孩子:1)該行'dimBackground.setLayoutParams(DLP);'是不必要的,DLP已經是當前佈局上背景,你不必再次設置它。嘗試在XML上手動創建此佈局(僅用於測試),可能是現有規則與您添加的新規則衝突。 – Budius
@Budius:'dimBackground.setLayoutParams(dlp);'將調用'requestLayout()',所以它是必需的。 – ben75
你調用'requestLayout();'=] – Budius