在 XML 中,您可以执行以下操作:
android:layout_above="@+id/foo"
使一个元素高于另一个元素foo
。
我如何以编程方式执行此操作?
虽然RelativeLayout.LayoutParams
可以添加RelativeLayout.ABOVE
不允许我指定我希望我的视图位于哪个元素上方的规则。
在 XML 中,您可以执行以下操作:
android:layout_above="@+id/foo"
使一个元素高于另一个元素foo
。
我如何以编程方式执行此操作?
虽然RelativeLayout.LayoutParams
可以添加RelativeLayout.ABOVE
不允许我指定我希望我的视图位于哪个元素上方的规则。
这不允许我指定我希望我的视图位于哪个元素之上。
当然可以
[来自文档]( 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。
事实上,你提到的那个,明确地说
此方法应仅用于不引用另一个兄弟的约束
(强调我的)
您必须为视图设置一个 ID。您可以执行 myview.setId(id) 或在资源文件 ids.xml 中声明一个 id,然后 setId(R.id.declared_id)。