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 条评论
登录 后参与评论

相关文章

来自专栏hbbliyong

设置WPF窗体全屏显示:

//全屏代码: private void Window_Loaded(object sender, RoutedEventArgs e) { // 设...

61840
来自专栏Go 语言编程

Go 语言读写 Excel 文档

Excelize 是 Go 语言编写的一个用来操作 Office Excel 文档类库,基于 ECMA-376 Office OpenXML 标准。可以使用它来...

550120
来自专栏LeoXu的博客

[翻译]Ext JS 教程-布局和容器 原

布局系统是ExtJS中一个强大的组成部分。它控制着应用程序的每一个组件的尺寸和位置。这个操作手册包含开始使用布局的基础操作。

14410
来自专栏小文博客

小文’s blog – WordPress自定义字体

15720
来自专栏吴伟祥

IDEA的快捷键应用 原

Ctrl+Shift+Alt+鼠标 (左手按着ctrl+shift+alt右手鼠标点击想要选择的位置)

10930
来自专栏前端小叙

移动端页面按手机屏幕分辨率自动缩放的js

1 <script> 2 var phoneWidth = parseInt(window.screen.width); 3 var ph...

68070
来自专栏前端知识分享

第121天:移动端开发基本知识

注意lang=“zh-CN”表示网页为中文,如果是英文则为lang=“en-CN”。

12840
来自专栏Windows Community

Extensions in UWP Community Toolkit - ViewExtensions

概述 UWP Community Toolkit Extensions 中有一个为 View 提供的扩展 - View Extensions,本篇我们结合代码详...

31960
来自专栏张高兴的博客

张高兴的 Xamarin.Forms 开发笔记:为 Android 与 iOS 引入 UWP 风格的汉堡菜单 ( MasterDetailPage )

549100
来自专栏梁源的专栏

使用Visual Studio Code编写Vue的札记

Visual Studio Code文中简称VSCode,使用VSCode编写Vue有一段时间了,觉得很顺手,总结一些经验操作分享给大家,希望对大家学习VSCo...

21.8K90

扫码关注云+社区

领取腾讯云代金券