如何在Android中为TextInputLayout的提示和文本设置不同的重力

sha*_*ath 5 android gravity android-edittext android-textinputlayout

如何为TextInputLayout的提示和在编辑文本中输入的文本设置不同的重力。我想将提示重力设置为开始并将文本的文本重力设置为居中。所以我怎么能做到这一点。这是我的xml代码,

              <android.support.design.widget.TextInputLayout
                        android:id="@+id/email"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:padding="16dp"
                        android:gravity="start">

                        <EditText
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:backgroundTint="@color/grey"
                            android:hint="Email"
                            />
                    </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

小智 9

在 Android 中,我们可以通过编程和 XML 来设置重力。
要在中心设置编辑文本提示,请参阅下面我android:gravity="center"在 XML 中使用的代码。

<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:backgroundTint="@color/colorAccent"
    android:hint="Email" />
Run Code Online (Sandbox Code Playgroud)

要将提示显示在左上角和编辑文本中键入的文本居中或在Android 中为TextInputLayout 的提示和文本设置不同的重力,您需要尝试以下代码。

在 .xml 中,您需要设置 EditText 的提示重力top|left

<android.support.design.widget.TextInputLayout
    android:id="@+id/email"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="16dp">

    <EditText
        android:id="@+id/etName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="top|left"
        android:hint="Email"
        android:backgroundTint="@color/colorAccent" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

在您的 java (activity) 文件中,以编程方式设置 EditText 的文本重心:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    EditText etName = (EditText)findViewById(R.id.etName);
    etName.setGravity(Gravity.CENTER);
}
Run Code Online (Sandbox Code Playgroud)

查看结果截图:

在此处输入图片说明

  • 请阅读想要为编辑文本的提示和正在键入的文本设置不同重力的问题 (2认同)