Android 抓住被解雇的人
有没有办法捕捉到某个片段的解雇/取消 底部板材类Android 抓住被解雇的人,android,android-dialogfragment,bottom-sheet,Android,Android Dialogfragment,Bottom Sheet,有没有办法捕捉到某个片段的解雇/取消 底部板材类 public class ContactDetailFragment extends BottomSheetDialogFragment { private BottomSheetBehavior.BottomSheetCallback mBottomSheetBehaviorCallback = new BottomSheetBehavior.BottomSheetCallback() { @Override
public class ContactDetailFragment extends BottomSheetDialogFragment
{
private BottomSheetBehavior.BottomSheetCallback mBottomSheetBehaviorCallback = new BottomSheetBehavior.BottomSheetCallback()
{
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState)
{
if (newState == BottomSheetBehavior.STATE_HIDDEN)
{
dismiss();
}
}
@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset)
{
}
};
@Override
public void setupDialog(Dialog dialog, int style)
{
super.setupDialog(dialog, style);
View contentView = View.inflate(getContext(), R.layout.fragment_contactdetail, null);
dialog.setContentView(contentView);
BottomSheetBehavior mBottomSheetBehavior = BottomSheetBehavior.from(((View) contentView.getParent()));
if (mBottomSheetBehavior != null)
{
mBottomSheetBehavior.setBottomSheetCallback(mBottomSheetBehaviorCallback);
mBottomSheetBehavior.setPeekHeight((int) DisplayUtils.dpToPixels(CONTACT_DETAIL_PEEK_HEIGHT, getResources().getDisplayMetrics()));
}
}
}
我尝试过但不起作用的方法
- 在
中添加setupDialog
dialog.setOnCancelListener()中的任一项代码>或
对话框.setOnDismissListener()代码>从不被触发
- 只有当用户向下拖动底部工作表并通过折叠状态,并且没有“已解除/取消”状态时,才会触发底部工作表行为的
onStateChanged
- 使用
将相同的oncancel/ondismiss侦听器添加到BottomSheetDialogFragment的实例化中不会触发ContactDetailFragment.getDialog().setOnCancelListener()
在BottomSheetDialogFragment中使用
onDestroy
或onDetach
允许我正确地获得解雇覆盖onDismiss
方法对我有效。覆盖onCancel()
或onDismiss()
转到onCancel()这将帮助您通过向下滑动捕获用户取消仅当用户向下滑动时Cancel才起作用如果您想在对话框关闭时侦听所有情况,则可以使用onDismiss()