如何在相对布局中修改控件的ID?

时间:2012-12-25 19:13:34

标签: android-layout

我是Android新手并使用相对布局。现在我正在尝试更改控件的ID,但是一旦我更改了ID,其他控件就会重新定位,因为它们相对于彼此。他们是否可以在不重新定位的情况下更改控件的ID?

1 个答案:

答案 0 :(得分:0)

因为相对布局中的每个对象都是基于对象ID排列的。更改其中一个对象ID后,您还需要在另一侧更改其对象ID。如果不是,布局将非常混乱,需要重新排列。

避免这种情况的最佳方法是在继续之前声明每个对象ID。

我的建议是你逐个更改了对象ID。将对象ID的所有字段更改为最新。

  <TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignRight="@+id/textView2"
    android:layout_below="@+id/login_email"
    android:layout_marginTop="46dp"
    android:text="@string/password_text" />


<EditText
    android:id="@+id/login_password"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/textView3"
    android:layout_alignBottom="@+id/textView3"
    android:layout_alignRight="@+id/login_email"
    android:layout_toRightOf="@+id/textView3"
    android:ems="10"
    android:password="true"
    android:singleLine="true" />

<Button
    android:id="@+id/register_button"
    android:layout_width="100dip"
    android:layout_height="40dip"
    android:layout_alignRight="@+id/login_password"
    android:layout_below="@+id/login_password"
    android:text="@string/signup_text" />

例如,根据上面的代码,将TextView ID从@+id/textView3更改为@+id/password_text。您需要在包含@+id/textView3@+id/password_text的对象中逐个更改。

中的内容
   <EditText
    android:layout_alignBaseline="@+id/textView3"
    android:layout_alignBottom="@+id/textView3"

顺便提一下,在你的问题中尝试标记Android。更多人会以这种方式注意到你的问题。