1

の子であるビューがありRelativeLayout、Java でレイアウト パラメータを変更しようとしています。私は次のように取得LayoutParamsします:

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" />
4

1 に答える 1

2

(レイアウトについてあまり詳細を投稿していないため、決定的な答えを出すのは困難です)。

あなたcurrentTextViewとあなたdimBackgroundは同じ親relativeLayoutを持っていないと思います。RelativeLayout docで言及されているように:

子の位置を相互または親との関係で記述できるレイアウト。

currentTextViewdimBackgroundが同じの子であることを再確認してくださいRelativeLayout

于 2013-01-11T16:41:21.007 に答える