Android如何获取软键盘的高度
下面代码中Log打印的displayHeight是窗口可视区域的高度,因为style设置的windowNoTitle为true,所以这个高度和通过setContentView设置的布局的可见高度是相同的,所以也可以认为是R.layout.activity_measure_soft_key的可见高度。
Log中的parentHeight是视图的根元素的高度,根元素是一个FrameLayout,只有一个子元素,就是平时在onCreate方法中设置的setContentView。
Log中的softKeyHeight就是计算出的软键盘的高度,是通过根视图高度减去窗口可见高度得到。
对应Activity文件
public class MeasureSoftKeyActivity extends AppCompatActivity {public static String TAG = "TranslucentActivityTAG";private ConstraintLayout constraintLayout;private ViewGroup parentContent;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_measure_soft_key);constraintLayout = findViewById(R.id.constraint_layout);parentContent = findViewById(android.R.id.content);parentContent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {@Overridepublic void onGlobalLayout() {Rect r = new Rect();parentContent.getWindowVisibleDisplayFrame(r);int displayHeight = r.bottom - r.top;Log.v(TAG, "displayHeight:" + displayHeight);int parentHeight = parentContent.getHeight();Log.v(TAG, "parentHeight:" + parentHeight);int softKeyHeight = parentHeight - displayHeight;Log.v(TAG, "softKeyHeight:" + softKeyHeight);}});}
}
AndroidManifest.xml
在无Title样式下,通过r.bottom - r.top得到的高度是准确的可见高度。软键盘未弹起时与android.R.id.content对应的布局的高度相同。
<activity android:name=".activity.MeasureSoftKeyActivity"android:theme="@style/MeasureSoftKeyAppTheme"></activity>
设置无Title样式
<style name="MeasureSoftKeyAppTheme" parent="AppTheme"><!-- Customize your theme here. --><item name="android:windowNoTitle">true</item><item name="windowNoTitle">true</item>
</style>
layout布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/constraint_layout"><EditTextandroid:id="@+id/et_input"android:layout_width="match_parent"android:layout_height="wrap_content"app:layout_constraintBottom_toBottomOf="parent"/></android.support.constraint.ConstraintLayout>
Log:
V/TranslucentActivityTAG: displayHeight:1013
V/TranslucentActivityTAG: parentHeight:1848
V/TranslucentActivityTAG: softKeyHeight:835
Android如何获取软键盘的高度相关推荐
- Android 监听软键盘的高度并解决其覆盖输入框的问题
1.前言 在某些项目中,我们常常需要自定义一个输入框,软键盘弹出时就把输入框顶上去,关闭时输入框再回到原位(比如下方的效果图,实际上各种 App 中的聊天界面和发布评论的界面大体都是这样).在这个过程 ...
- Android中获取软键盘状态和软键盘高度
应用场景 在Android应用中有时会需要获取软键盘的状态(即软键盘是显示还是隐藏)和软键盘的高度.这里列举了一些可能的应用场景. 场景一 当软键盘显示时,按下返回键应当是收起软键盘,而不是回退到上一 ...
- android中监听软键盘的弹出与隐藏,并获取软键盘的高度
最近项目中有一个需求上弹出软键盘的时候,输入框位移至输入框上方,但是Activity中其他的VIew都不动.这个需求需要监听软软键盘的弹出与隐藏,并获取键盘的高度.上网找了一下发现,Android竟然 ...
- Android获取软键盘的高度、键盘的打开与关闭、监听键盘处于打开还是关闭状态
最近在项目中,需要获取到软键盘的高度,再将底部的布局上移键盘的高度,话不多说,直接上代码: 获取软键盘高度 //一个静态变量存储高度public static int keyboardHeight = ...
- android 虚拟键 高度,Android,获取虚拟键盘的高度
在很多时候,很多需求下,我们都需要得知键盘的高度啊!实在不能理解为什么安卓不提供这样方便的API.虽然没有很好的监听事件,但是我们还是可以制造一个的.想想虚拟键盘弹起来之后界面发生了什么变化?对的,有 ...
- android获得键盘高度,Android获取软键盘高度
在 Android 里我们是无法直接获取软键盘高度的,但是在某些场景下,我们又需要获取软键盘的高度.我们可以使用 ViewTreeObserver.OnGlobalLayoutListener来监听窗 ...
- html 软键盘 页面高度,深入理解高度,获取屏幕、webview、软键盘高度
如果没有手动调整过webview的高度的话,默认情况下,屏幕的高度=顶部状态栏的高度+webview的高度. 如果软键盘打开,则屏幕的高度=顶部状态栏的高度+webview的高度+软键盘的高度. HT ...
- Android 获取软键盘的删除delete事件
对于软键盘删除事件,网上有很多方案是如下,但是 google api也说明了,这个只是监听硬件键盘,对于软键盘并不负责触发(我测试了一下,软键盘能够监听delete键,其他键像数字字母等没有触发这里的 ...
- Android 文本,软键盘使用指南
目录 TextView的基本使用 TextView的基本属性 图文混排的三种实现方式 drawableTop,DrawableBottom,DrawableLeft,drawableRight 通过I ...
最新文章
- 安装rabbitMQ
- Android Studio设置字体
- 16进制/10进制数转化为浮点型案例
- 在 Lua 里 使用 Cocos Studio 导出的 .csb 文件
- php短网址案例,php生成短网址原理与实例
- 苹果宣布对2019款iPad降价:最高降幅达500元
- spark学习 小汇集
- 04.spring boot配置文件--yml
- rollup函数(分组后对每组数据分别合计)
- 信息熵是怎样炼成的 | 纪念信息论之父香农
- webkit 学习笔记 - 1. 浏览器与浏览器内核
- 前后端分离和不分离到底有什么区别
- 想要快乐陪伴左右吗?多种提高多巴胺的方法送给你
- matplotlib-10 title添加标题
- 开箱即用的 SQL Server Docker
- 什么是反射以及反射的作用
- “阿里外传”之一:阿里巴巴有只宠物,叫雅虎
- 【EPS精品教程】EPS2016三维测图软件常用快捷键(建议收藏)
- 八大数据分析模型之——事件模型(二)
- Python编曲实践(四):向MIDI文件中添加鼓组音轨
热门文章
- 生活随感2022年1月26日20:52:52
- uniapp(微信小程序)使用vant全过程
- 梳理一个问题(垃圾分类,垃圾回收)
- 滴滴服务分计算机制,滴滴司机,如何避免扣除服务分?服务分到底有多重要?...
- 从内外参到 Structure From Motion(SFM)
- 数据结构(c++)--宝岛探险
- MyBatis一:关于MyBatis及的搭建过程
- latex对应希腊字符查表
- 网络安全是一个好专业吗
- jQuery实现文件下载( 隐藏表单实现ajax下载 )