按下后退按钮时,BottomSheet不会崩溃

时间:2017-06-15 18:53:33

标签: android bottom-sheet

除了这种情况,我的bottomSheet行为正确。当我通过'返回按钮返回活动时,我希望bottomSheet崩溃,我认为下面的代码可以解决问题,但它不起作用。可能是什么原因 ? (我通过调试器确认它已到达语句

@Override
public void onBackPressed() {

    mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}

当通过finish()返回时,同一行正常工作:

if (resultCode == Activity.RESULT_OK) {

    mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}

2 个答案:

答案 0 :(得分:0)

你可以使用这个代码onBackPressed()方法

behavior.setState(BottomSheetBehavior.STATE_HIDDEN);

答案 1 :(得分:0)

如果对话框中有setCancelable(true),则后退按钮不会触发onbackpressed(),您可以尝试

我有一个名为BottomSheetFragmentDialog的类,它是从BottomSheetDialogFragment扩展而来的,并且我在setCanceledOnTouchOutside(false)方法中有onCreateDialog,也覆盖了onCancel()

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
    val dialog = super.onCreateDialog(savedInstanceState)
    dialog.setCanceledOnTouchOutside(false)
    return dialog
}

override fun onCancel(dialog: DialogInterface) {
    super.onCancel(dialog)
    Toast.makeText(context, "Break Point Here", Toast.LENGTH_SHORT).show()
}