美文网首页
Android键盘状态终极解决办法

Android键盘状态终极解决办法

作者: 狮子座洛璃 | 来源:发表于2018-06-22 13:59 被阅读0次

    自己管理键盘状态

    先定义一个接口

    public interface OnKeyboardListener {

    void isShow(boolean isShow);

    }

    public OnKeyboardListener getOnKeyboardListener() {

    return onKeyboardListener;

    }

    public void setOnKeyboardListener(OnKeyboardListener onKeyboardListener) {

    this.onKeyboardListener = onKeyboardListener;

    }

    //键盘状态监听

    private OnKeyboardListeneronKeyboardListener;

    在Activity的跟布局layout上做监听

    main_layout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

    @Override

        public void onGlobalLayout() {

    Rect r =new Rect();

    main_layout.getWindowVisibleDisplayFrame(r);

    if (main_layout.getRootView().getHeight() - (r.bottom - r.top) > CodeUtil.dip2px(WDYBaseActivity.this,100)//键盘高度) {

    setIsShowKeyboard(true);

    if (getOnKeyboardListener() !=null)

    getOnKeyboardListener().isShow(true);

    }else {

    setIsShowKeyboard(false);

    if (getOnKeyboardListener() !=null)

    getOnKeyboardListener().isShow(false);

    }

    }

    });

    原理:监听根布局是否被顶高了。用于解决键盘管理混乱的页面。

    相关文章

      网友评论

          本文标题:Android键盘状态终极解决办法

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