我的 bottomSheet
行为正确,但在这种情况下除外。当我通过“后退按钮”返回 Activity 时,我希望 bottomSheet
折叠,我认为下面的代码可以解决问题,但它不起作用。可能是什么原因 ? (我与调试器确认它到达语句)
@Override
public void onBackPressed() {
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
当它通过 finish()
返回时,同一行工作正常:
if (resultCode == Activity.RESULT_OK) {
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
最佳答案
如果你的对话框有setCancelable(true)
,后退按钮不会触发onbackpressed()
,你可以试试这个
我有一个类调用 BottomSheetFragmentDialog,它是从 BottomSheetDialogFragment 扩展的,我在 onCreateDialog
方法中有 setCanceledOnTouchOutside(false)
也覆盖了 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()
}
关于android - 当我按下后退按钮时,BottomSheet 不会折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44574911/