@Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); Objects.requireNonNull(builder); container = view.findViewById(R.id.bottom_sheet_container); title = container.findViewById(R.id.bottom_sheet_title); gridView = container.findViewById(R.id.bottom_sheet_grid); initUi(); if (!builder.menuItems.isEmpty()) { gridView.setAdapter(adapter = new GridAdapter(new ContextThemeWrapper(requireActivity(), builder.style), builder.menuItems, builder.isGrid)); gridView.setOnItemClickListener(this); } else { adapter = new AppAdapter(new ContextThemeWrapper(requireActivity(), builder.style), builder.apps, builder.isGrid); gridView.setAdapter(adapter); } if (listener != null) listener.onSheetShown(this, builder.object); }
@Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); Objects.requireNonNull(builder); container = view.findViewById(R.id.bottom_sheet_container); title = container.findViewById(R.id.bottom_sheet_title); gridView = container.findViewById(R.id.bottom_sheet_grid); initUi(); if (!builder.menuItems.isEmpty()) { gridView.setAdapter(adapter = new GridAdapter(new ContextThemeWrapper(requireActivity(), builder.style), builder.menuItems, builder.isGrid)); gridView.setOnItemClickListener(this); } else { adapter = new AppAdapter(new ContextThemeWrapper(requireActivity(), builder.style), builder.apps, builder.isGrid); gridView.setAdapter(adapter); } if (listener != null) listener.onSheetShown(this, builder.object); }
@NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { BottomSheetDialog dialog = new BottomSheetDialog(requireActivity(), builder.style); dialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface dialog) { if (container == null || container.getParent() == null) return; CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) ((View) container.getParent()).getLayoutParams(); CoordinatorLayout.Behavior behavior = params.getBehavior(); // Should always be the case if (behavior instanceof BottomSheetBehavior) { ((BottomSheetBehavior) behavior).setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int state) { if (state == BottomSheetBehavior.STATE_HIDDEN) { dismissEvent = BottomSheetListener.DISMISS_EVENT_SWIPE; dismiss(); } } @Override public void onSlide(@NonNull View bottomSheet, float slideOffSet) { // NOOP } }); } } }); return dialog; }
@NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { BottomSheetDialog dialog = new BottomSheetDialog(requireActivity(), builder.style); dialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface dialog) { if (container == null || container.getParent() == null) return; CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) ((View) container.getParent()).getLayoutParams(); CoordinatorLayout.Behavior behavior = params.getBehavior(); // Should always be the case if (behavior instanceof BottomSheetBehavior) { ((BottomSheetBehavior) behavior).setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int state) { if (state == BottomSheetBehavior.STATE_HIDDEN) { dismissEvent = BottomSheetListener.DISMISS_EVENT_SWIPE; dismiss(); } } @Override public void onSlide(@NonNull View bottomSheet, float slideOffSet) { // NOOP } }); } } }); return dialog; }