当使用 Eclipse 的布局编辑器设计 Android 布局时,编辑一个元素的 ID 或移动它会导致所有其他元素移动。此外,将整个元素包装到另一个容器中也会导致此问题。
这就是发生的事情。在此之后,将元素移动到正确的位置是绝对不可能的。
如何解决问题?
编辑前的 XML 文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/securityQuestion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="31dp"
android:ems="10"
android:hint="@string/turvak" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/securityQuestionAnswer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/securityQuestion"
android:layout_below="@+id/securityQuestion"
android:layout_marginTop="24dp"
android:ems="10"
android:hint="@string/vastaus"
android:inputType="textPassword" />
<EditText
android:id="@+id/password1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/securityQuestion"
android:layout_below="@+id/securityQuestionAnswer"
android:layout_marginTop="57dp"
android:ems="10"
android:hint="@string/salis"
android:inputType="textPassword" />
<EditText
android:id="@+id/password2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/password1"
android:layout_alignRight="@+id/password1"
android:layout_centerVertical="true"
android:ems="10"
android:hint="@string/salasanauudelleen"
android:inputType="textPassword" >
</EditText>
<Button
android:id="@+id/saveButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/password2"
android:layout_below="@+id/password2"
android:layout_marginTop="30dp"
android:text="@string/tallenna" />
</RelativeLayout>
添加容器后,一个ScrollView:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ScrollView1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/securityQuestion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="31dp"
android:ems="10"
android:hint="@string/turvak" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/securityQuestionAnswer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/securityQuestion"
android:layout_below="@+id/securityQuestion"
android:layout_marginTop="24dp"
android:ems="10"
android:hint="@string/vastaus"
android:inputType="textPassword" />
<EditText
android:id="@+id/password1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/securityQuestion"
android:layout_below="@+id/securityQuestionAnswer"
android:layout_marginTop="57dp"
android:ems="10"
android:hint="@string/salis"
android:inputType="textPassword" />
<EditText
android:id="@+id/password2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/password1"
android:layout_alignRight="@+id/password1"
android:layout_centerVertical="true"
android:ems="10"
android:hint="@string/salasanauudelleen"
android:inputType="textPassword" >
</EditText>
<Button
android:id="@+id/saveButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/password2"
android:layout_below="@+id/password2"
android:layout_marginTop="30dp"
android:text="@string/tallenna" />
</RelativeLayout>
</ScrollView>