我显示了一个包含以下代码的BottomSheetDialogFragment:
BottomSheetDialogFragment bottomSheetDialogFragment = new MediaAddFragment();
bottomSheetDialogFragment.show(getActivity().getSupportFragmentManager(), bottomSheetDialogFragment.getTag());
getActivity().getSupportFragmentManager().executePendingTransactions();
bottomSheetDialogFragment.getDialog().setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
onResume();
MainActivity.updateMediaButtons();
}
});要关闭它,我从片断中调用dismiss()。这样,它会被关闭,但如果应用程序恢复运行,它会再次显示,这不是我的本意。
如果有人能帮我,我会很高兴的。我已经浏览了关于如何正确使用这些BottomSheetDialogFragments的各种教程,但我找不到我的错误。
顺便说一下,我在onResume中没有任何代码来测试它。
发布于 2017-02-15 07:16:47
(代表OP发布)。
我发现了我的错误,我在调用片段中覆盖了BottomSheetDialogFragment的onDismissListener。现在它可以正常工作了。
bottomSheetDialogFragment2.getDialog().setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
// Adding the following line fixed the problem for me
bottomSheetDialogFragment2.onDismiss(dialog);
// some Code....
}
});发布于 2021-03-07 15:44:02
我从15分钟开始就遇到了这个问题,问题是我没有给sheet的onDismiss打电话
override fun onDismiss(dialog: DialogInterface) {
if (shouldDismiss)
onDismiss.invoke()
// super.onDismiss(dialog) // this solution (final code)
}所以在你的代码中它应该是
@Override
public void onDismiss(DialogInterface dialog) {
onResume();
MainActivity.updateMediaButtons();
super.onDismiss(dialog);
}https://stackoverflow.com/questions/42211744
复制相似问题