TextInputLayout密码开关可将文本从中心移出

Nou*_*med 4 android android-layout android-support-library

将TextInputLayout与app:passwordToggleEnabled="true"EditText 一起使用时,文本的重心未如照片中所示居中。有什么帮助吗?

 <android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:hintEnabled="false"
    app:passwordToggleEnabled="true">

    <EditText
        android:gravity="center"
        android:id="@+id/passwordEt"
        style="@style/editTextStyle"
        android:layout_marginBottom="20dp"
        android:hint="@string/password"
        android:inputType="textPassword" />

</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

和文字样式

<style name="editTextStyle">

    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">50dp</item>
    <item name="android:layout_margin">8dp</item>
    <item name="android:background">@drawable/text_fields</item>
    <item name="android:padding">15dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Yel*_*sov 5

只需在的左侧添加透明可绘制对象EditText

<android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:passwordToggleEnabled="true">

                <EditText
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:drawableLeft="@drawable/ic_password_space"
                    android:drawableStart="@drawable/ic_password_space"
                    android:gravity="center" />

</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

对于透明的可绘制对象,可以使用任何对象android:width="48dp"

创建可绘制资源文件@drawable/ic_password_space.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="48dp"
        android:height="1dp"
        android:viewportWidth="1.0"
        android:viewportHeight="1.0">

    <path
        android:pathData="M"
        android:fillColor="#0000"/>
</vector>
Run Code Online (Sandbox Code Playgroud)