总结键盘显示隐藏几种方案

来源:互联网 发布:剑网三数据导入要钱吗 编辑:程序博客网 时间:2024/06/04 19:56

总结键盘显示隐藏几种方案

一、普通方式

这种方式比较普遍,是通过InputMethodManager
  • 自动显示隐藏(之前显示则隐藏,之前隐藏则显示)

    InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);  imm.toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);  
  • 强制显示隐藏
    显示:

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  imm.showSoftInput(view,InputMethodManager.SHOW_FORCED); 

    隐藏:

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  imm.hideSoftInputFromWindow(view.getWindowToken(), 0);

    缺点:只能被动的修改状态。无法预先控制,在点击EditText时,总会自动弹出软键盘

二、修改Flag

  • 强制隐藏(可以预先隐藏,点击EditText仍不会弹出)

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);

    缺点:会使当前界面中的所有键盘弹出时间失效,无法针对某个EditText

  • 恢复

    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
0 0
原创粉丝点击