0

在 XML 中,您可以执行以下操作:

android:layout_above="@+id/foo" 

使一个元素高于另一个元素foo

我如何以编程方式执行此操作?

虽然RelativeLayout.LayoutParams可以添加RelativeLayout.ABOVE不允许我指定我希望我的视图位于哪个元素上方的规则。

4

2 回答 2

1

这不允许我指定我希望我的视图位于哪个元素之上。

当然可以

[来自文档]( http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html#addRule(int , int))

anchor 另一个视图的 id 用作锚点,或布尔值(表示为 TRUE 表示真或 0 表示假)。对于不引用另一个兄弟的动词(例如,ALIGN_WITH_PARENT_BOTTOM),只需使用-1。

文档中有两种addRule()方法。只需使用需要第二个参数的那个,并给出View你想要它锚定在上面的 id。

事实上,你提到的那个,明确地说

此方法应仅用于不引用另一个兄弟的约束

(强调我的)

于 2016-02-18T20:38:02.050 回答
-1

您必须为视图设置一个 ID。您可以执行 myview.setId(id) 或在资源文件 ids.xml 中声明一个 id,然后 setId(R.id.declared_id)。

链接:如何以编程方式为视图分配 ID?

于 2016-02-18T20:39:41.840 回答