作者:一二三 | 来源:互联网 | 2023-10-12 11:24
今天碰到一个需求,有一个输入框EditText,要求输入某项金额,要求在未输入文字之前,hint提示,输入文字之后显示输入的文字,要求是未输入内容时hint字体大小为14sp,输入
今天碰到一个需求,有一个输入框EditText,要求输入某项金额,要求在未输入文字之前,hint提示,输入文字之后显示输入的文字,要求是未输入内容时hint字体大小为14sp,输入金额之后字体大小要变成30sp。,可是EditText本身没有这个属性可以设置,怎么办呢,只有在代码中添加监听事件了:
/** * 添加监听,在hint时和text时切换字体大小 */
cetMoney.addTextChangedListener(new TextWatcher() {
boolean hint;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(s.length() == 0) {
// no text, hint is visible
hint = true;
cetMoney.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
} else {
// no hint, text is visible
hint = false;
cetMoney.setTextSize(TypedValue.COMPLEX_UNIT_SP, 30);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
大功告成!!