Android键盘遮挡EditText解决方案

刚部署好博客,趁热撸一篇。


    前段时间,在项目开发过程中,遇到一个Case:在小屏幕设备上,对于如下图这样有多个EditText的布局,当键盘弹出时,会遮挡住处于下半部分的某些EditText。

未激活键盘

常用方案分析

    一般的解决方案是ScrollView+windowSoftInputMode,这样当键盘弹出时,系统会将获得焦点的EditText移动至可见的位置,然后用户可以上下滑动屏幕来查看被遮挡的EditText。
    Asana APP是通过压缩控件之间的垂直间距,并且尽量把控件放在上方,来给键盘腾出空间,避免控件被遮挡。
    但是对于本例来说,这些解决方案都不太“优雅”。

用户意图

    当键盘被激活时,用户的意图是输入内容。这时,上半部分空白区域是毫无意义的。理想情况下,空白区域向上滑动至不可见,而输入区域向上滑动至完全可见。
    那么,如何实现这种效果呢?

Continue Reading >>