Gibt es eine Möglichkeit, die Entlassung/das Abbrechen eines BottomSheetDialogFragment zu fangen?Fangen Sie die Entlassung von BottomSheetDialogFragment ab
Bodenblech Klasse
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()));
}
}
}
Was ich habe versucht, das funktioniert nicht
- in
setupDialog
entweder vondialog.setOnCancelListener();
oderdialog.setOnDismissListener();
Zugabe wird nie - die bottomsheet ausgelöst Verhalten
onStateChanged
wird nur ausgelöst, wenn der Benutzer dr ags die bottomsheet hinunter den zusammengeklappten Zustand übergeben, und es gibt keinen Staat für entlassene/annulliert - zum Instanziierung des BottomSheetDialogFragment die gleichen OnCancel/ondismiss Zuhörer das Hinzufügen, unter Verwendung
ContactDetailFragment.getDialog().setOnCancelListener()
nicht
Gegeben ausgelöst werden, dass es ist im Wesentlichen ein Dialogfragment, es muss einen Weg geben, die Entlassung zu fangen?
Override 'onDismiss' Methode hat für mich funktioniert. – hoshi