我正在尝试在我的 Android 应用程序上实现以下布局:
正如你所看到的,我想要一个中央登录框占据大约 70% 的宽度。我相信基本上有两种方法可以实现这一目标:
1.为登录框创建一个Linear或Relative布局,左右两边都添加layoutMargin。
2.创建一个weightSum="1" 的包装器LinearLayout,然后将RelativeLayout 放置在其中,layout_width="0dp" 和layout_weight="0.7"。
使用第一种方法,XML 将如下所示:
<LinearLayout 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"
android:orientation="vertical">
<ImageView
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/logo"
android:contentDescription="@string/logo"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#999999"
android:gravity="center"
android:layout_margin="30dp"
>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:hint="@string/email" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:hint="@string/password" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/login"/>
</LinearLayout>
</LinearLayout>
第二种方法只是在当前布局之上有一个包装器 LinearLayout,weightSum="1",内部布局将获得一个 layout_weight="0.7" 属性。
你认为哪一个是最好的方法?提前致谢。