gpt4 book ai didi

android - 在 TextInputLayout 中切换密码的回调

转载 作者:行者123 更新时间:2023-11-30 05:00:15 28 4
gpt4 key购买 nike

我为我的密码字段选择了 TextInputEditText,以使用切换密码功能。

这是我的 xml 代码:

        <com.google.android.material.textfield.TextInputLayout
android:layout_width="@dimen/login_width"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/password_margin_top"
app:hintEnabled="false"
app:passwordToggleDrawable="@drawable/password_toggle_drawable"
app:passwordToggleEnabled="true">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/my_login_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
android:hint="@string/password"
android:inputType="textPassword"
android:nextFocusDown="@+id/my_login_login"
android:padding="@dimen/field_padding" />
</com.google.android.material.textfield.TextInputLayout>

我必须对切换密码进行一些其他布局更改。在 TextInputLayout 中是否有任何可用的回调?

最佳答案

您可以调用setEndIconOnClickListener在你的 TextInputLayout :

textInputLayout.setEndIconOnClickListener { v ->
// Layout changes here
}

但是,这会删除负责切换密码转换方法的点击监听器。我建议只复制 PasswordToggleEndIconDelegate 中的点击监听器代码并在顶部添加您自己的功能:

textInputLayout.setEndIconOnClickListener {
val editText: EditText? = textInputLayout.editText
// Store the current cursor position
val selection = editText?.selectionEnd ?: 0

// Check for existing password transformation
val hasPasswordTransformation = editText?.transformationMethod is PasswordTransformationMethod;
if (hasPasswordTransformation) {
editText?.transformationMethod = null
} else {
editText?.transformationMethod = PasswordTransformationMethod.getInstance()
}

// Restore the cursor position
editText?.setSelection(selection)

// Add additional functionality here
}

编辑:此方法仅适用于 Material 库版本1.1.0-alpha04之后,在撰写本文时,1.1.0仍处于测试阶段。

关于android - 在 TextInputLayout 中切换密码的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58378600/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com