我想设计一个登录屏幕。内容应水平和垂直对齐中心。到目前为止,我已经创建了这个:
目前,我已将 marginTop 赋予我的顶部元素,即图标。但我认为这不是正确的方法。我希望用户名字段位于屏幕的垂直中心。这会将整个内容移动到屏幕中间。
到目前为止,这是我的布局代码:
<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"
tools:context=".LoginActivity"
android:background="#d1d6df">
<ImageView
android:id="@+id/imgIcon"
android:src="@drawable/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="Icon"
android:layout_marginBottom="20dp"
android:layout_marginTop="120dp"
android:layout_centerHorizontal="true"/>
<EditText
android:id="@+id/txtUsername"
android:hint="Username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/imgIcon"
android:ems="10"
android:inputType="text">
<requestFocus />
</EditText>
<EditText
android:id="@+id/txtPassword"
android:hint="@string/passwordHint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/txtUsername"
android:ems="10"
android:inputType="textPassword">
</EditText>
<Button
android:text="@string/loginButtonText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/txtPassword"
/>
</RelativeLayout>
此外,我希望登录按钮从其上兄弟中获取宽度,即密码字段。那可能吗?