Как затемнить фон при использовании 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
в основном это диалог (то есть поддержка дим) и поддержка модальных нижних листов поведения, попробуйте