Jacksgong / JKeyboardPanelSwitch

For resolve the layout conflict when keybord & panel are switching (Android键盘面板冲突 布局闪动处理方案)
Apache License 2.0
4.19k stars 684 forks source link

Demo有个bug:在键盘弹出时,按下返回键会退出当前activity #80

Open SnakeMM opened 6 years ago

SnakeMM commented 6 years ago

复现方式: 1.进入demo activity 2.按+弹出panel 3.按返回键关闭panel 4.再次按+弹出panel 5.按一下输入框,此时显示键盘 6.按返回键,出现bug

g19980115 commented 6 years ago

我试了下,确实有这个问题。这样修改可以解决问题: 修改事件event.action == KeyEvent.ACTION_UPevent.action == KeyEvent.ACTION_DOWN即可

override fun dispatchKeyEvent(event: KeyEvent): Boolean {
        if (event.action == KeyEvent.ACTION_DOWN && event.keyCode == KeyEvent.KEYCODE_BACK) {
            if (panel_root.visibility == View.VISIBLE) {
                KPSwitchConflictUtil.hidePanelAndKeyboard(panel_root)
                return true
            }
        }
        return super.dispatchKeyEvent(event)
    }