美文网首页
软件盘的隐藏

软件盘的隐藏

作者: 代来 | 来源:发表于2019-02-19 11:38 被阅读1次

if (imm !=null&&isSoftShowing()) {

imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

}

谷歌官网没有给出软键盘是否弹出的api,只能自己通过计算软键盘的高度来判断软键盘是不是显示了
public boolean isSoftShowing() {

//获取当前屏幕内容的高度

    int screenHeight = getWindow().getDecorView().getHeight();

//获取View可见区域的bottom

    Rect rect =new Rect();

//DecorView即为activity的顶级view

    getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);

//考虑到虚拟导航栏的情况(虚拟导航栏情况下:screenHeight = rect.bottom + 虚拟导航栏高度)

//选取screenHeight*2/3进行判断

    return screenHeight *2 /3 > rect.bottom;

}

相关文章

网友评论

      本文标题:软件盘的隐藏

      本文链接:https://www.haomeiwen.com/subject/jgyxyqtx.html