用inputType = textPassword在EditText上调用setSingleLine使字符可见

问题描述 投票:1回答:1

我在活动的XML中添加了带有inputType="textPassword"的EditText

<EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Enter Password"
        android:inputType="textPassword"
        android:padding="16dp"
        android:id="@+id/passwordInput"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

到目前为止,没有任何问题,我看到圆圈内有真实的密码字符:

enter image description here

有趣的部分在这里。现在,如果我在“活动”中的EditText上调用setSingleLine()

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        passwordInput.setSingleLine()
    }
}

将看到密码字符令人惊讶地可见!

enter image description here

另一个有趣的事情是,如果我将android:singleLine="true"放在EditText的XML中,则不会发生此问题。

:我知道在密码字段上设置setSingleLine是没有用的,但是我很好奇为什么调用此函数会产生这种副作用。

android android-edittext android-inputtype android-singleline
1个回答
0
投票

尝试在XML中设置它:

android:inputType="textPassword"
android:maxLines="1"
android:singleLine="true"
© www.soinside.com 2019 - 2024. All rights reserved.