这是我想要的:
在 iOS 中,这非常简单,但在 android 中似乎是不可能的。无论如何,我都想要屏幕的文本框中心。当我添加图像时,文本框会移动,即使它们是居中对齐的,而图像不是。我希望图标彼此居中,但这似乎也很困难,除非它们位于相同的布局中。我应该将它们全部放在同一个相对布局中吗?
我将主要布局作为线性布局,使用权重为所有内容提供适当的高度尺寸,其中单独的相对或线性布局是加权的。这是公认的模式吗?
这是图标 textViews 和 textEdits 之一的示例。
<RelativeLayout
android:id="@+id/passwordRelativeLayout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="83"
android:gravity="center">
<ImageView
android:id="@+id/passwordImageView"
android:layout_width="40dp"
android:layout_height="40dp"
android:adjustViewBounds="true"
android:contentDescription="@string/email_ph"
android:gravity="center_horizontal"
android:src="@mipmap/lock_icon"
android:layout_alignParentBottom="true"
android:layout_toStartOf="@+id/passwordTextView" />
<TextView
android:id="@+id/passwordTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignStart="@+id/passwordEditText"
android:labelFor="@+id/passwordEditText"
android:text="@string/password"
android:textColor="@color/white"
android:textSize="24sp" />
<EditText
android:id="@+id/passwordEditText"
android:layout_width="500dp"
android:layout_height="45dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_below="@+id/passwordTextView"
android:layout_gravity="center_horizontal"
android:background="@mipmap/text_box_background"
android:gravity="center"
android:inputType="textPassword" />
</RelativeLayout>\
这没有边距设置,但我现在只关心获得像素完美居中设置。