1

我有一个视图,它是 a 的子视图,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中提到的:

一种布局,其中子项的位置可以相对于彼此或与父项进行描述。

所以请仔细检查,currentTextView并且dimBackground都是同一个孩子RelativeLayout

于 2013-01-11T16:41:21.007 回答