与BottomSheets的昏暗屏幕和块交互

ata*_*aya 7 android android-layout android-fragments android-view bottom-sheet

BottomSheetBehavior已在Android设计支持库23.2中引入,但它不会使屏幕的其余部分变暗,也不会阻止与UI的其余部分的交互.无论如何这可以实现吗?

azi*_*ian 3

public class BottomSheetDimmedFragment extends BottomSheetDialogFragment {
    public static final String TAG = BottomSheetDimmedFragment.class.getSimpleName();

    @NonNull
    @Override
    public Dialog onCreateDialog(final Bundle savedInstanceState) {
        final BottomSheetDialog dialog = (BottomSheetDialog) super.onCreateDialog(savedInstanceState);
        final View view = View.inflate(getContext(), R.layout.test, null);
        dialog.setContentView(view);
        return dialog;
    }

    public void show(final FragmentActivity fragmentActivity) {
        show(fragmentActivity.getSupportFragmentManager(), TAG);
    }
}
Run Code Online (Sandbox Code Playgroud)

在您的活动中:

BottomSheetDimmedFragment sheet = new BottomSheetDimmedFragment();
sheet.show(this);
Run Code Online (Sandbox Code Playgroud)

现在,您将有一个暗淡的区域,并且当单击暗淡的区域时,对话框将关闭。

在此输入图像描述

实施方式取自此处