我正在使用here的建议TextInputEditText
,以允许用户添加特定长度的文本。
但是,我希望当TextInputEditText
视图获得焦点时,提示应该消失而不是移到视图上方,如上述教程中所示。在此answer中,描述的解决方案适用于EditText
,它只是使提示变得透明。但是,对于TextInputEditText
,即使我在获得焦点时使提示透明,它仍将占据视图上方的空间。
有没有一种方法可以静态地将其移至TextInputEditText
中的焦点上?通过OnFocusChangeListener
可以很容易地做到这一点,但是我一直希望在编译时做到这一点。
答案 0 :(得分:1)
尝试在EditText上设置焦点更改侦听器,并在焦点为true时以编程方式隐藏提示,如果焦点为false并且文本为空,则再次显示提示。
答案 1 :(得分:1)
尝试以下文章 how to make hint disappear when edittext is touched?
myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus)
myEditText.setHint("");
else
myEditText.setHint("Your hint");
}
});
答案 2 :(得分:1)
如果您想消失在焦点上,请尝试以下操作:
textInputEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasfocus) {
if (hasfocus) {
textInputLayout.setHint("test");
} else {
textInputLayout.setHint(null);
}
}
});
如果您想在键入时消失(如果您正在寻找类似的东西),请尝试以下代码:
textInputEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (TextUtils.isEmpty(textInputEditText.getText().toString())) {
textInputLayout.setHint("test");
} else {
textInputLayout.setHint(null);
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
答案 3 :(得分:0)
尝试在Java中设置EditText提示,当您单击EditText时,它将自动隐藏。
edtPassword.setHint(getString(R.string.YOUR_HINT));
答案 4 :(得分:0)
只需添加:-
从以下文章中尝试一下如何在触摸edittext时使提示消失?
edittxt.setOnFocusChangeListener(new View.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus)
edittxt.setHint("");
else
edittxt.setHint("hint");
}
});