1

私はAndroidを初めて使用し、RelativeLayoutを使用しています。現在、コントロールのIDを変更しようとしていますが、IDを変更するとすぐに、他のコントロールは相互に相対的な位置に再配置されます。コントロールを再配置せずにコントロールのIDを変更する方法はありますか?

4

1 に答える 1

0

相対レイアウト内のすべてのオブジェクトは、オブジェクト ID に基づいて配置されるためです。オブジェクト ID の 1 つを変更したら、反対側のオブジェクト ID も変更する必要があります。そうしないと、レイアウトがめちゃくちゃになり、再配置する必要があります。

これを回避する最善の方法は、続行する前にすべてのオブジェクト ID を宣言することです。

オブジェクト ID を 1 つずつ変更することをお勧めします。オブジェクト 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" />

たとえば、上記のコードに基づいて、TextViewid を から@+id/textView3に変更すると、 @+id/password_text. @+id/textView3toを含むオブジェクトを 1 つずつ変更する必要があります@+id/password_text。にある

   <EditText
    android:layout_alignBaseline="@+id/textView3"
    android:layout_alignBottom="@+id/textView3"

ところで、あなたの質問にも Android をタグ付けしてみてください。そうすれば、より多くの人があなたの質問に気付くでしょう。

于 2012-12-26T04:26:14.740 に答える