我在活动的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" />
到目前为止,没有任何问题,我看到圆圈内有真实的密码字符:
有趣的部分在这里。现在,如果我在“活动”中的EditText上调用setSingleLine()
:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
passwordInput.setSingleLine()
}
}
将看到密码字符令人惊讶地可见!
另一个有趣的事情是,如果我将android:singleLine="true"
放在EditText的XML中,则不会发生此问题。
注:我知道在密码字段上设置setSingleLine
是没有用的,但是我很好奇为什么调用此函数会产生这种副作用。
尝试在XML中设置它:
android:inputType="textPassword"
android:maxLines="1"
android:singleLine="true"