如何禁用TextInputLayout的密码切换按钮上的波纹效果

时间:2019-10-03 16:44:30

标签: android xml material-design android-textinputlayout material-components-android

我使用TextInputLayout显示密码切换按钮。它正在工作,但是波纹效果在EditText的背景后面(我对EditText使用可绘制的背景)。如何禁用密码按钮的涟漪效应或将涟漪效应带到EditText背景的前面?这里显示了问题https://imgur.com/nYOB6Ye的录制视频。

<com.google.android.material.textfield.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="25dp"
                app:hintEnabled="false"
                app:passwordToggleEnabled="true">

                <com.google.android.material.textfield.TextInputEditText
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/bg_edit"
                    android:hint="••••••"
                    android:inputType="textPassword"
                    android:padding="18dp" />
            </com.google.android.material.textfield.TextInputLayout>

3 个答案:

答案 0 :(得分:0)

您可以通过删除android:background="@drawable/bg_edit"中的TextInputEditText并使用OutlinedBox style获得相同的结果:

    <com.google.android.material.textfield.TextInputLayout
        android:hint="••••••"
        app:endIconMode="password_toggle"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
        app:boxBackgroundColor="@color/....."
        ..>

           <com.google.android.material.textfield.TextInputEditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textPassword"
                android:padding="18dp" />

    </com.google.android.material.textfield.TextInputLayout>

注意:app:passwordToggleEnabled="true"已过时。只需添加app:endIconMode="password_toggle"

答案 1 :(得分:0)

这不是很好的解决方案,但对我有用。
materialVersion:1.1.0

科尔廷:

textInputLayout.apply {
        findViewById<View>(R.id.text_input_end_icon).setBackgroundColor(
            ResourcesCompat.getColor(resources, R.color.transparent, theme)
        )
    }
通过布局检查器找到了

R.id.text_input_end_icon

答案 2 :(得分:0)

下面显示了一种简单的方法,用于创建密码切换的新主题。父主题是您的主要(应用)主题。

<style name="PasswordToggleTransparent" parent="NoActionBar">
        <item name="colorControlHighlight">#0000</item>
</style>

并将此主题应用于您的 TextInputLayout

android:theme="@style/PasswordToggleTransparent"