有很多小伙伴在制作textview控件的时候会遇到要求显示输入字数的情况 如下图:
那么怎么做呢, 我在这里可以选择别人写好的第三方控件比如:
Materialedittext
这个三方控件有很多功能 比如下划线颜色、字体颜色、字体位置、以及字体总数和可输入数的颜色变化。
在这里就不多说了
下面要说的是如何通过原生来写这个小控件。
首先我们会想到我们的思路是:
1.输入框 Textview1
2.显示字数的 Textview2
3.通过判断Textview1的动态变化来实现Textview2的动态显示。
为了方便显示我们这里主要已截图为主,代码量很少。
研究过输入控制的同学应该知道关于Editext 对于输入控制需要用到
TextWatcher
TextWatcher是一个监听字符变化的类。当我们调用EditText的addTextChangedListener(TextWatcher)方法之后,就可以监听EditText的输入了。
这里我们添加一个addTextChangedListener 来对输入进行一个监听。
这里实现TextWatcher()的三个方法。
- beforeTextChanged(CharSequence s, int start, int count, int after)
- onTextChanged(CharSequence s, int start, int before, int count)
- afterTextChanged(Editable s)
方法就不多说了,这里我们要实现的效果主要是afterTextChanged()这个方法中控制。
代码就不必多说了很简单
当然这里我们还要注意一点 ,那就是是否使用表情。因为表情是用不好会很多不可预知的问题。
所以在这里我也是吧表情给禁掉了
我是影子,但是光越亮影子就越深,更能显出光的明亮 -----黑子はボクです