BottomSheetDialogFragment 不是模态的
Posted
技术标签:
【中文标题】BottomSheetDialogFragment 不是模态的【英文标题】:BottomSheetDialogFragment not modal 【发布时间】:2017-03-25 17:54:31 【问题描述】:是否可以使 ?这意味着不会使底层内容变暗,也不会阻止与它的交互。
也许只能通过经典片段?
【问题讨论】:
【参考方案1】:尝试通过这种方式扩展BottomSheetDialogFragment
类
public class CustomBottomSheetDialogFragment extends BottomSheetDialogFragment
@Override
public void onCreate(@Nullable Bundle savedInstanceState)
super.onCreate(savedInstanceState);
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.dialog_modal, null);
dialog.setContentView(contentView);
CoordinatorLayout.LayoutParams layoutParams =
(CoordinatorLayout.LayoutParams) ((View) contentView.getParent()).getLayoutParams();
CoordinatorLayout.Behavior behavior = layoutParams.getBehavior();
if (behavior != null && behavior instanceof BottomSheetBehavior)
((BottomSheetBehavior) behavior).setBottomSheetCallback(mBottomSheetBehaviorCallback);
来自this 文章。
【讨论】:
嗨,谢谢,但这似乎不能满足我的需要 但这很有帮助,因为它展示了如何以编程方式获取行为 @luky 你为什么不编辑答案或发布一个完全解决你问题的新答案?以上是关于BottomSheetDialogFragment 不是模态的的主要内容,如果未能解决你的问题,请参考以下文章
如果键盘可见,则防止关闭 BottomSheetDialogFragment
赶上BottomSheetDialogFragment的解雇
Android BottomSheetDialogFragment 闪烁
防止 BottomSheetDialogFragment 覆盖导航栏