Как затемнить фон при использовании BottomSheet из библиотеки поддержки?

Как можно затемнить фон, как показано здесь?

Я настроил это нормально, используя CoordinatorLayout и BottomSheetBehavior,

2 ответа

Решение

Это просто покажет нижний лист.

public class MyBottomSheet extends BottomSheetDialogFragment {
    private static final String TAG = "MyBottomSheet";

    @NonNull
    @Override
    public Dialog onCreateDialog(final Bundle savedInstanceState) {
        final BottomSheetDialog dialog = (BottomSheetDialog) super.onCreateDialog(savedInstanceState);

        final View view = View.inflate(getContext(), R.layout.my_custom_view, null);

        dialog.setContentView(view);
        behavior = BottomSheetBehavior.from((View) view.getParent());

        return dialog;
    }

    public void show(final FragmentActivity fragmentActivity) {
        show(fragmentActivity.getSupportFragmentManager(), TAG);
    }
}

Чтобы закрыть диалог просто как обычный вызов close(),

    bottomSheetBehavior.addBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
                @Override
                public void onStateChanged(@NonNull View bottomSheet, int newState) {}

                @Override
                public void onSlide(@NonNull View bottomSheet, float slideOffset) {

                            (your_layout/view).setAlpha(1 - slideOffset);

                }
            });

Использование BottomSheetDialog

в основном это диалог (то есть поддержка дим) и поддержка модальных нижних листов поведения, попробуйте

Другие вопросы по тегам