专栏首页Android-薛之涛Android 软键盘遮挡解决

Android 软键盘遮挡解决

前言:在开发过程中难免会遇到在软键盘遮挡输入框的问题,今天来整理一下。

参考:作者:leandom

        链接:https://www.jianshu.com/p/9eb57a8ff5e5

效果图:

正常

软键盘弹出

解决问题后

解决思路:

思路

我们要做的就是在软键盘弹出后显示的位置为空白区域,不超过内容区域,也就是登录按钮一下。

有小伙伴提问了,除非空白区域和软键盘一样大小,如果软键盘区域大于空白区域那岂不是还有覆盖吗?对的。

 那有什么解决方式吗? 答:内容区域向上移动即可。

  如何知道内容区域向上移动多少呢?答:这个就要通过计算了,如图:

首先我们是有办法获取内容区域的大小也就是高的(代码中体现),然后屏幕的高减去内容区域的高就是软键盘的高度,知道了软键盘的高度(软键盘的高度无法改变,那么只好调整内容区域距离顶部的margintop值了,比如-20的dp,那么不就实现效果了吗。)。

主要代码:

第一步:

获取屏幕分辨率:

int  screenHeight=activity.getResources().getDisplayMetrics().heightPixels;

第二步:

/Rect 其实就是左上右下

Rect rect =new Rect();//不知道自行了解,代码中都有注释

//获取当前窗口可视区域大小(内容区域)也就是获取内容区域高度,activity为loginActivity

activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);

//这就是软键盘的高度

int newBlankheight =screenHeight - rect.bottom;

github地址:https://github.com/searchdingding/KeyBoardDemo

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android-Gson小总

    几乎每次项目中都要用到Gson来解析json数据,今天想做个总结。ok,现在我们先来了解一下JSONObject和JsonObject的区别(我个人总结了三点)...

    android_薛之涛
  • android-tips(ScaleType)

    android tips主要讲解平时在开发中的一些常用有比较容易让人忽略的问题或者是个人建议。知识比较杂,但是好多人可能看到过,但没有仔细想,研究..........

    android_薛之涛
  • Activity启动模式(launchMode)详解

          好了,今天想整理一下Activity启动模式的笔记,毕竟项目开发中有涉及且之前面试都有问道,抽周末做个总结。

    android_薛之涛
  • Python教程之粒子运动轨迹动态绘图

      今天我们来讲一下Python中的动态绘图库--matplotlib.animation,以粒子运动轨迹为例来说明如何绘制动态图。

    猫叔Rex
  • 入门级难度构建Pyhton神经网络,硅谷AI网红手把手带你入坑

    Siraj Raval 作为深度学习领域的自媒体人在欧美可以说是无人不知、无人不晓。 凭借在 Youtube 上的指导视频,Siraj Raval 在全世界吸...

    AI研习社
  • 知名企业家曹一峰受邀参加“一带一路”新经济形态发展论坛

      央广网北京6月22日消息(记者刘柏煊)据中央广播电视总台经济之声《天下财经》报道,中亚区域经济合作正在迎来新机遇。由中亚区域经济合作学院主办的“一带一路”新...

    linapex
  • 你给我翻译翻译到底什么叫可玩性?

    王兵
  • 2017年IaaS云计算市场10大看点

    2016年IaaS市场出现了三足鼎立:AWS,微软Azure,谷歌云平台。这些公司为客户提供了在全球托管数据的更多选择,更多虚拟机实例大小以优化其工作负载,以及...

    静一
  • 如何在Nbuntu 18.04上将Nginx Web Root移动到新位置

    在Ubuntu上,Nginx Web服务器将其文档存储在/var/www/html中,该文档通常位于其余具有操作系统部分的根文件系统上。但有时,将文档根移动到另...

    所有的酒都不如你
  • JDK1.8新特性(五):Stream,集合操作利器,让你好用到飞起来

    集合是Java中使用最多的API,几乎每个程序员天天都会和它打招呼,它可以让你把相同、相似、有关联的数据整合在一起,便于使用、提取以及运算等操作。在实际Java...

    xcbeyond

扫码关注云+社区

领取腾讯云代金券