📜  如何在Android中切换密码可见性?

📅  最后修改于: 2021-05-13 15:26:11             🧑  作者: Mango

我们知道,切换意味着通过按一个按钮在两个不同的选项之间切换。因此,在本文中,我们将看到如何通过按一个按钮(此处为“眼睛”按钮)来更改密码的可见性,即通过输入密码类型,我们还可以启用一个图标,该图标可以显示或隐藏密码。用户键入的文本。为了实现这个项目,我们将使用TextInputLayout(Linear Layout的子级) ,它是Android Material Design Library随附的设计组件。由于我们要输入密码,因此将使用TextInputEditText代替普通的EditText,因为TextInputEditText是EditText的子类,而TextEditText是TextInputLayout的子级。与密码可见性切换相关联的XML属性有五个。

  • passwordToggleEnabled:此属性的值为true或false,因此,当我们希望密码可切换时,应为该属性分配true值。
  • passwordToggleTint:允许为颜色提供可见性切换图标。
  • passwordToggleTintMode:允许为切换图标提供不同的背景模式。
  • passwordToggleDrawable:允许我们为切换图标提供其他图标,而不是默认的眼睛图像。
  • passwordToggleContentDescription:允许我们对切换图标进行描述。

下面给出了一个示例GIF,以使我们对本文中要做的事情有一个了解。请注意,我们将使用Kotlin语言实施此项目。

在Android中切换密码可见性

分步实施

步骤1:创建一个新项目

要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Kotlin作为编程语言。

步骤2:使用activity_main.xml文件

现在转到代表应用程序UI的activity_main.xml文件。以下是activity_main.xml文件的代码。在代码内部添加了注释,以更详细地了解代码。

XML



    

                                                
        app:passwordToggleEnabled="true"
        
        app:passwordToggleTint="@color/colorPrimary"
  
        android:scrollbarSize="25dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent">
  
        
        
 
  
 
  


Kotlin
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}


步骤3:使用build.gradle(应用级文件)

在依赖关系部分中导入对材料组件的依赖关系。

步骤4:使用MainActivity.kt文件

转到MainActivity.kt文件,并参考以下代码。下面是MainActivity.kt文件的代码。在代码内部添加了注释,以更详细地了解代码。由于此项目中不需要执行任何逻辑,因此MainActivity不包含任何代码。

科特林

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}

输出:

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!