android 输入法判断,Android如何检测输入法键盘是否显示
Android没有提供很方便的方法来判断输入法键盘是否显示(或者我没有找到),包括InputMethodManager和Configuration change都没有办法检测,但实际这个功能还是很需要的。
今天终于在stackoverflow发现一种迄今为止最简便的方法,http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android
1. 在需要检测的Activity的layout xml中的root layout指定一个ID
2. 在Activity中加入以下代码
final View root = findViewById(R.id.root);
root.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int screenHeight = root.getRootView().getHeight();
int myHeight = root.getHeight();
int heightDiff = screenHeight - myHeight;
Log.e("onGlobalLayout", "screenHeight=" + screenHeight);
Log.e("onGlobalLayout", "myHeight=" + myHeight);
if (heightDiff > NORMAL_DIFF) {
Log.e("onGlobalLayout", "Soft keyboard showing");
} else {
Log.e("onGlobalLayout", "Soft keyboard hidden");
}
}
});经笔者测试,screenHeight为整个屏幕的高度(除去虚拟导航栏),myHeight为自身程序所占的高度。
在没有输入法键盘的时候,heightDiff实际就是StatusBar加ActionBar的高度(NORMAL_DIFF),所以只需要根据heightDiff是否大于这个高度就能判断输入法键盘是否显示了。
在4.3原生系统上,StatusBar加ActionBar的高度为73dp,建议实际应用将这个值设大一些,因为不同的手机ROM可能这个高度不一致,输入法键盘一般高度在300dp左右。
android 输入法判断,Android如何检测输入法键盘是否显示相关推荐
- android 蓝牙耳机 判断,Android实现蓝牙耳机连接
前言 最近看了下蓝牙耳机连接的问题,查阅了相关资料,再此做一个总结. 本文参考以下链接: Android实现主动连接蓝牙耳机 再次对作者表示感谢. 今天涉及的内容有: 流程讲解 新建广播Bluetoo ...
- android EditText 设置弹出数字输入法键盘
首先设置只能输入数字: <EditText android:id="@+id/edit_digit_input" android:layout_width="wra ...
- (转)android EditText 设置弹出数字输入法键盘
首先设置只能输入数字: [html] view plaincopy <EditText android:id="@+id/edit_digit_input" android: ...
- Android EditText设置弹出数字输入法键盘
Android EditText 设置弹出数字输入法键盘 首先设置只能输入数字: <EditText Android:id="@+id/edit_digit_input" a ...
- android禁止输入框自动弹出软键盘,怎么禁用输入法-Android禁止EditText输入框自动弹出软键盘的4种方法...
用户UI如果有EDITTEXT,经常会自己获得焦点弹出来,如果不需要输入法键盘,就需要禁止弹出.经常使用,现在总结如下: 1.父控件设置属性不弹出 EditText有一个 android:focusa ...
- android+第三发输入法控制,android输入法属性使用,软键盘隐藏、显示状态控制大揭秘...
经常会遇到需要控制输入法的情况,如输入法显示.隐藏: 输入法弹出后,界面被顶上去或编辑框被遮挡等问题:下面分为几个部分总结输入法属性设置,及输入法控制. 一.windowSoftInputMode设置 ...
- android 自定义输入法布局,Android InputMethodService|KeyboardView 自定义输入法和键盘 01...
如何自定义 安卓输入法 和 键盘 1.首先有几个关键类 1.InputMethodService 2.Keyboard 3.KeyboardView 1.1 InputMethodService 看下 ...
- Android 进入Activity禁止弹出软键盘输入法及stateHidden和stateAlwaysHidden的区别
在开发中经常会遇到这样的问题,进入一个含Edittext的Activity后总是会自动弹出软件盘.但是有时候我们又不想让它弹出,因为影响美观,而且用户可能也会反感.最好的做法是刚进入时不让弹出,在用户 ...
- android edittext_基于Android输入法开发,制作一个微信斗图APP
刘望舒 读完需要 20分钟 速读仅需12分钟 作者:小学生° 来源:搜狐技术产品 01 导读 微信斗图的应用有很多,但大部分都是通过微信分享来实现的,需下载 APP,下载表情并分享到微信联系人,操作步 ...
- Android 检测键盘是否显示及隐藏键盘
Android 检测键盘是否显示及隐藏键盘的方法~~ package com.newland.util;import android.app.Activity; import android.view ...
最新文章
- 【Python培训基础】一篇文件教你py文件打包成exe
- has been modified since the precompiled header
- 多VLAN环境下DHCP服务的实现
- 谁拿了最多奖学金pascal程序
- 修改大型 XML 文件的有效方法
- 爬虫基于ADSL动态获取ip
- 如何通过 C# 判断一个 路径 是本机还是远程 ?
- 利用pdf.js开发嵌入pdf显示,以及利用jquery-ui左右分栏显示
- P7920-[Kubic]Permutation
- 全栈深度学习第3期: 怎样科学管理实验数据?
- Coco2dx-3.0中怎样调用LUA
- java swf 上传文件_[Pulgin] 利用swfupload实现java文件批量上传
- arm-4-裸板开发
- 如何购买一只好的基金
- 浅谈欧奈尔对利弗莫尔的继承和发扬
- 编辑器 的保存怎么绑定事件_135编辑器有哪些可以快速提升新媒体小编工作效率的功能?...
- 解决:Docker Container exited with code 137
- macOS上如何通过.crash文件定位崩溃地址
- dig的现在分词_现在分词的变化规则(含双写加ing的动词归纳)
- 【转载】Oracle 查看执行计划