beh*_*lit 2 android android-dialogfragment bottom-sheet
有没有办法解决BottomSheetDialogFragment的解雇/取消?
底层课程
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()));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过的东西不起作用
setupDialog加入任一dialog.setOnCancelListener();或dialog.setOnDismissListener();从未被触发onStateChanged如果用户拖动底部表格向下通过折叠状态,则仅触发底部表格行为,并且没有被解雇/取消的状态ContactDetailFragment.getDialog().setOnCancelListener()不会被触发鉴于它本质上是一个对话片段,必须有一些方法来解决这个问题?
找到了一个简单的解决 在BottomSheetDialogFragment中使用onDestroy或onDetach允许我正确解雇
| 归档时间: |
|
| 查看次数: |
5583 次 |
| 最近记录: |