触摸基线的TextInputLayout中显示密码图标

Rah*_*rma 8 android material-design

我在TextInputLayout中使用show password图标时遇到了一些问题android:inputType="textPassword".现在它显示这样在此输入图像描述

如您所见,显示密码图标正在触及基线.我想要这样的东西在此输入图像描述

你可以看到他们之间的差距.

用于实现TextInputLayout的xml sode如下:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/TextLabelSNA"
    app:layout_constraintTop_toBottomOf="@+id/mailSave"
    app:layout_constraintBottom_toBottomOf="parent"
    android:layout_marginBottom="16dp"
    android:layout_marginTop="16dp"
    android:layout_marginStart="16dp"
    app:layout_constraintLeft_toLeftOf="parent"
    android:layout_marginLeft="16dp"
    android:layout_marginEnd="16dp"
    app:layout_constraintRight_toRightOf="parent"
    android:layout_marginRight="16dp"
    android:id="@+id/tilOp"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintVertical_bias="0.0">
    <EditText
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:inputType="textPassword"
        android:hint="Old Password"
        android:ems="10"
        android:textColor="#0A0B12"
        android:id="@+id/oldPassword"/>
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

使用的风格是:

<style name="TextLabelSNA" parent="Widget.Design.TextInputLayout">
    <!-- Hint color and label color in FALSE state -->
    <item name="android:textColorHint">@color/hintBlack</item>
    <item name="android:textSize">16sp</item>
    <!-- Label color in TRUE state and bar color FALSE and TRUE State -->
    <item name="colorAccent">@color/hintBlack</item>
    <item name="colorControlNormal">@color/hintBlack</item>
    <item name="colorControlActivated">@color/hintBlack</item>
</style>
Run Code Online (Sandbox Code Playgroud)

请帮忙..!!!

小智 50

只需在textinputlayout中添加app:passwordToggleEnabled ="true"即可

<android.support.design.widget.TextInputLayout
            app:layout_widthPercent="90%"
            android:layout_height="wrap_content"
            android:hint="@string/password"
            android:textColorHint="@android:color/white"
            app:passwordToggleEnabled="true"
            app:passwordToggleTint="@android:color/white">

            <android.support.v7.widget.AppCompatEditText
                android:id="@+id/et_password"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textPassword"
                android:textColor="@android:color/white"
                android:visibility="gone"
                 />


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


小智 6

  <android.support.design.widget.TextInputLayout
        android:id="@+id/inputLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:passwordToggleEnabled="true">
        <EditText
            android:id="@+id/txtpwd"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:drawableLeft="@drawable/lock"
            android:ems="10"
            android:hint="  Password"
            android:imeOptions="actionGo"
            android:inputType="textPassword"
            android:padding="10dp">

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


小智 -5

在你的 gradle 中添加库依赖项

 dependencies {
    compile 'com.github.scottyab:showhidepasswordedittext:0.8'
}
Run Code Online (Sandbox Code Playgroud)

然后添加远程maven url

 allprojects {
    repositories {
        maven {
            url "https://jitpack.io"
        }
    }
}`
Run Code Online (Sandbox Code Playgroud)

最后将其添加到您的 xml 中。它就像常规的 EditText 一样

 <com.scottyab.showhidepasswordedittext.ShowHidePasswordEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/simplePassword"
        android:hint="Password"
        />
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请访问此链接 显示/隐藏密码 EditText

  • 由于它现在已包含在支持库中,因此无需使用该库。事实上,它已被弃用。请参阅这篇文章:https://medium.com/@moyinoluwa/password-visibility-toggle-android-support-library-revision-24-2-0-98b422087e5a (3认同)