美文网首页Android程序猿Android开发经验谈Android开发
Android解决hint和text的文字大小冲突

Android解决hint和text的文字大小冲突

作者: Kndroid | 来源:发表于2017-10-12 18:44 被阅读143次

    一、背景

    需求:输入框InputText TextSize大于Hint TextSize。

    二、做法

    先固定InputText TextSize = 23

    ①使用setHint(SpannableString)改变Hint文字大小

    SpannableString ss = new SpannableString("输入金额");

    AbsoluteSizeSpan ass = new AbsoluteSizeSpan(16, true);

    ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    editText.setHint(new SpannedString(ss));

    完成,测试后发下一个有以上的Bug,光标停在了Hint文字上方了~:

    这样显示有点丑了,那怎么办呢?

    方法②:利用TextWatcher,判断是否输入文字来显示的是hint还是text,动态设置文字的小大

    editText.addTextChangedListener(newTextWatcher() {

    @Override public void beforeTextChanged(CharSequence s,intstart,intcount,intafter){

    editText.setTextSize(16);

    }

    @Override public void onTextChanged(CharSequence s,intstart,intbefore,intcount){

    if(TextUtils.isEmpty(s)) {

    editText.setTextSize(16);

    }else{

    editText.setTextSize(23);

    }

    }

    @Override public void afterTextChanged(Editable s){}

    方法②成功解决了以上问题,当然还有一个方式是:在EditText上放一个TextView来当成Hint,也可以达到目的O(∩_∩)O~~~

    相关文章

      网友评论

      • XxooXxoo:你的滑动标尺怎么实现的

      本文标题:Android解决hint和text的文字大小冲突

      本文链接:https://www.haomeiwen.com/subject/jfpoyxtx.html