RelativeLayout Params没有ID的addRule

时间:2014-02-21 12:40:11

标签: java android relativelayout

我想将以下规则添加到RelativeLayout

中的TextView
TextView anyView = new TextView(anyContext);

RelativeLayout.LayoutParams layout;
..
layout.addRule(RelativeLayout.LEFT_OF, anyView.getID());

这仅在我添加元素的ID时才有效。问题是我没有并且不希望指定任何ID,因为我的视图可以在以后的同一ViewGroup中多次使用。

因此,我必须通过引用分配该规则,或者我需要动态创建新ID,以便我不创建具有相同ID的多个视图。

在这种情况下该怎么办?

我试图从这个xml中复制:

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <GridLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_alignParentRight="true"
            android:id="@+id/gridLayout">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="A lot of text for some width"/>
        </GridLayout>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="123"
            android:layout_centerVertical="true"
            android:gravity="center_horizontal"
            android:layout_toLeftOf="@+id/gridLayout"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />
    </RelativeLayout>

enter image description here

1 个答案:

答案 0 :(得分:0)

试试这个

RelativeLayout.LayoutParams pAC = new RelativeLayout.LayoutParams(
                            your width,
                            your height);

                    pAC.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
                    anyView .setLayoutParams(pAC);