关于监听android 软键盘的一种可行方案

本文介绍了一种通过监听全局布局变化来获取软键盘状态的方法。利用InputMethodManager类的hideSoftInputFromWindow方法,可以判断软键盘当前是否处于打开状态。这种方法避免了通过布局变化间接推断键盘状态的不准确性。
摘要由CSDN通过智能技术生成

问题:

1.监听到软键盘状态变化。

2.判断软键盘当前状态。

遇到这个关于软键盘的问题,寻找了许多资料。看过许多例子。有的通过layout 变化来定度,显得太牵强。


下面是我参考其他例子,加以实践,可行的办法。

rootLayout.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
			@Override
			public void onGlobalLayout() {
				InputMethodManager imm = (InputMethodManager) getSystemService( Context.INPUT_METHOD_SERVICE);
				if(imm.hideSoftInputFromWindow(edittext.getWindowToken() ,  0)){
					imm.showSoftInput(edittext,  0); //关闭成功,但是我只是想知道键盘的状态而不是关闭它,于是再次恢复打开状态
					//打开状态
					  
				}
				else{
					//关闭状态
					 
				}
			}
		} );

其中 
rootLayout 是界面的根布局
<pre name="code" class="java">imm.hideSoftInputFromWindow(edittext.getWindowToken() ,  0) 关闭键盘,如果当前键盘是打开的 那么会返回true  如果键盘是关闭的  那么会返回 false 
通过上面的办法 即可获取键盘状态。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值