如何在Android上正确关闭底部表单?

如何在Android上正确关闭底部表单?,android,keydown,onkeydown,bottom-sheet,Android,Keydown,Onkeydown,Bottom Sheet,我在关闭底页时遇到问题,我设置了KeyEvent.Keycode\u BACK,并检查底页是否未打开,是否已打开。我没有Collapse设置app:peekHeight=0dp仅展开 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode){ case KeyEvent.KEYCODE_BACK: if (bottomSheetBehav

我在关闭
底页时遇到问题,我设置了
KeyEvent.Keycode\u BACK
,并检查
底页是否未打开,是否已打开。我没有
Collapse
设置
app:peekHeight=0dp
展开

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    switch (keyCode){
        case KeyEvent.KEYCODE_BACK:

            if (bottomSheetBehavior.getState() != BottomSheetBehavior.STATE_HIDDEN) {
                bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
                break;
            }else if (bottomSheetBehavior.getState() == BottomSheetBehavior.STATE_HIDDEN){
                startActivity(new Intent(ShareMainActivity.this, MainActivity.class));
                finish();
            }
            break;
    }
    return super.onKeyDown(keyCode, event);
}
当return
true
时,它会工作,但会继续返回到我的MainActivity,就像我没有
else
语句一样。我甚至在上面写了
break

我所想的是,由于它将在第一次按键时关闭,它应该首先退出
底页
(打开),然后在第二次按键时进入我的
main活动

单击外部的
视图
会隐藏
底页
,返回到我的
main活动

我试图通过调试跟踪错误,它告诉我错误-与字节码不匹配


如果您不想支持Android 2.0之前的版本,您可以简单地覆盖onBackPressed()。API 5中添加的onBackPressed()源代码与字节码不匹配。
通常表示您在安装/启动应用程序后编辑了代码。只需再次运行调试就可以修复它。@Aravindraj-我有两个
OnKeyDown
onBackPress
似乎都有相同的行为。它将退出我的应用程序。