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

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

一、普通方式

这种方式比较普遍,是通过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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值