软键盘无法把内容顶出屏幕外

转载请标明出处,维权必究:http://77blogs.com/?p=275

 

继上次这一篇后:https://www.cnblogs.com/tangZH/p/12013685.html

我继续探讨,这次的场景和上一次的场景是一样的,在一个布局中,根布局是相对布局,需要被软键盘顶上去的部分为线性布局。线性布局最下方为一个Editext,后来发现,当线性布局的内容过多的时候,线性布局没法被顶出屏幕外,到达顶端就停止了,导致下方的EdiText被软键盘遮挡住。

 

我在根布局最外层套上一个ScrollView,这样一来发现下方的Editext还是会被遮挡住,但是不同的是,这时候你可以去手动将整个布局往上滑动,可我们需要的是顶上去之后自动露出来全部,而不是靠用户手动去滑,于是乎我想到了下面这种方法:

监听view布局发现变化(也就是软键盘出现或者消失的时候)的时候就将scrollView滑动到最底下,这样就能够使得需要显示的内容不被软键盘遮挡。

EditText超出字数限制,给用户提示

当我们在Editext输入内容的时候,检测如果超过限制的长度无法输入内容,并且给用户提示。

首先我想到了下面的方法:


 

未经测试,个人觉得这种体验或许不是很好,或许会出现EdiText闪动。

 

其实我们可以用下面这种方法:

源码给Editext设置了过滤器,专门用来判断是否超出最大的字符长度,把这段过滤器取出来,在里面加上Toast提示,设置给Editext就可以了。


 

调用:


 

源码中该方法是这样的:


 

由此可见我们可以给Editext设置多个过滤器,例如过滤掉一些特殊字符,表情等等。

 

学习android有一个很重要的能力就是阅读源码的能力,很多问题都可以通过阅读源码找到解决方法。

转载请标明:http://77blogs.com/?p=554

参考链接:https://blog.csdn.net/qq_26411333/article/details/51647888

设置Editext的光标宽高与颜色

转载请标明 :http://77blogs.com/?p=555

在Editext的布局属性上加上

android:textCursorDrawable=”@drawable/cursor_shape”

cursor_shape如下:

 

事实证明:设置android:height无效,应该用padding的方法。

top设置为-2dp :让光标顶部下移2dp

bottom设置为-2dp:让光标底部上移2dp

这样子光标的高度就变小了4dp

 

从下面的源码可以大概看出原因: