我是Android的新手,并且使用相对布局。现在,我正在尝试更改控件的ID,但一旦我更改了ID,其他控件就会重新定位,因为它们彼此之间是相对的。他们有什么方法可以改变控件的ID而不重新定位它们吗?
发布于 2012-12-26 12:26:15
因为相对布局中的每个对象都是基于对象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。您需要在包含of @+id/textView3的对象中逐个将其更改为@+id/password_text。这是在
<EditText
android:layout_alignBaseline="@+id/textView3"
android:layout_alignBottom="@+id/textView3"顺便说一句,在你的问题中也可以尝试使用Android标签。这样会有更多的人注意到你的问题。
https://stackoverflow.com/questions/14033323
复制相似问题