软键盘1—如何隐藏和显示软键盘

来源:互联网 发布:淘宝复制的链接在哪找 编辑:程序博客网 时间:2024/06/04 18:37

关闭软键盘
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEdit.getWindowToken(), 0);

下面就可以通过下面方法可以恢复显示

boolean showSoftInput(View view, int flags, ResultReceiver resultReceiver)
boolean showSoftInput(View view, int flags)
void showSoftInputFromInputMethod(IBinder token, int flags)

软键盘显示的原理

  
  1. 软件盘的本质是什么?软键盘其实是一个Dialog 
  2. InputMethodService为我们的输入法创建了一个Dialog,并且将该DialogWindow的某些参数(如Gravity)进行了设置,使之能够在底部或者全屏显示。当我们点击输入框时,系统对活动主窗口进行调整,从而为输入法腾出相应的空间,然后将该Dialog显示在底部,或者全屏显示。

侦听软键盘的显示隐藏
有时候,借助系统本身的机制来实现主窗口的调整并非我们想要的结果,我们可能希望在软键盘显示隐藏的时候,手动的对布局进行修改,以便使软键盘弹出时更加美观。这时就需要对软键盘的显示隐藏进行侦听。

  
  1. 直接对软键盘的显示隐藏侦听的方法本人没有找到,如果哪位找到的方法请务必告诉本人一声。还有本方法针对压缩模式,平移模式不一定有效。 
  2. 我们可以借助软键盘显示和隐藏时,对主窗口进行了重新布局这个特性来进行侦听。如果我们设置的模式为压缩模式,那么我们可以对布局的onSizeChanged函数进行跟踪,如果为平移模式,那么该函数可能不会被调用。
该答案已被锁定,无法对其进行评论,编辑及投票。
()
评论 (0) •链接 • 2012-02-13

您的投票让 李剑波 声誉值增加了10分。

支持投票,不仅能让回答用户获得声誉值,让好答案排序靠前,更能帮助社区筛选出好的内容,构建高质量的知识库。

  • 李剑波

    1 票

  • 李剑波
    4748

有一种方法可以在任何时候都能关闭软键盘

  
  1. InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
  2. imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

myEditText就是所用的edit控件。

原创粉丝点击