软键盘弹出时popwindow_PopupWindow消失时实在自动隐藏 软键盘

本文介绍了在Android开发中遇到的一个问题:如何在popupwindow关闭时自动隐藏软键盘。当manifest.xml中设置`android:windowSoftInputMode="adjustPan|stateHidden"`时,软键盘隐藏失效。解决方案是将`android:windowSoftInputMode`设为`adjustPan`,并在popupwindow关闭时调用`hideSoftKeyboard()`方法。虽然在真机上工作正常,但在模拟器中可能需要设置为`adjustPan|stateHidden`才能避免布局被顶起。注意,有时候即使不主动隐藏,popupwindow消失时软键盘也会自动隐藏。
摘要由CSDN通过智能技术生成

[在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎

项目需求:在用户点击关闭popup窗口时,自动把已经弹出的软键盘隐藏。

void function(){

mPopupWindow.dismiss();

hideSoftKeyboard();

}

private void hideSoftKeyboard(){

System.out.println("SA: come here to hidden soft keyboard... ");

// hidden soft keyboard....

final View vv = getWindow().peekDecorView();

if (vv != null && vv.getWindowToken() != null) {

InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(vv.getWindowToken(), 0);

}

}

上面的方法没有用了,根本不能使软键盘 消失。

测试了一下,是因为,我在manifest.xml当中设置了: android:windowSoftInputMode="adjustPan|stateHidden"

现在相互矛盾了:

如果 我们

在AndroidManifest.xml的Activity设置属性:android:windowSoftInputMode = "adjustResize" ,软键盘弹出时,要对主窗口布局重新进行布局,并调用onSizeChanged方法,切记一点当我们设置为“adjustResize”时,我们的界面不要设置为全屏模式,否则设置了这个属性也不会有什么效果。[转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/48129405; 本文出自:【张鸿洋的博客】一、概述其实这篇文章理论上不限于okhttp去访问自签名的

而当我们设置android: windowSoftInputMode = "adjustPan"时,主窗口就不会调用onSizeChanged方法,界面的一部分就会被软键盘覆盖住,就不会被挤到软键盘之上了。

"stateHidden"

当用户选择该Activity时,软键盘被隐藏——也就是,当用户确定导航到该Activity时,而不是返回到它由于离开另一个Activity。

那针对,项目的实际需求:adjustPan 这是一定需要的,所以,暂时的解决方法:android:windowSoftInputMode="adjustPan" 用一个设置就可以,这样软键盘在弹起的时候,即不会把原来的布局顶上去,在poupWindow消失的时候,又可以把软键盘隐藏掉。

用真机测试是完全可以的,达到要求,可是用模拟器就是达不到效果,在模拟器中,你只有设置 成android:windowSoftInputMode="adjustPan|stateHidden" 这样,软键盘才不会把布局给顶上去。 在模拟器当中,listView没有滚动到底部的时候,不会把布局顶上,当滚动到底部时,会顶上。不知道什么原因,反正也不是os版本的问题,我试过2.2,

2.3

真机用的是 htc g7 miui 2.3.5

还有要特别注意:把我们主动隐藏软键盘的代码去除,软键盘也能自动消失,只要poupWindow一消失,软键盘也就会消失了。

这跟 mPopupWindow.setBackgroundDrawable(new BitmapDrawable()); 没有关系,

应该是系统根据你的设置(android:windowSoftInputMode="adjustPan"),自动完成的。

[这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值