7

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

4

3 回答 3

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);
    }
}

在您的活动中:

BottomSheetDimmedFragment sheet = new BottomSheetDimmedFragment();
sheet.show(this);

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

在此处输入图像描述

这里执行。

于 2017-03-26T10:56:36.923 回答
1

使用带有片段而不是视图的底部工作表:)

于 2017-03-27T13:00:36.257 回答
0

请注意,有两种实现:

BottomSheetBehaviorBottomSheetDialogFragment

用于BottomSheetDialogFragment获取您需要的功能。

此外,当使用BottomSheetBehavior设置布局的android:clickable="true". 这样,当您点击空白区域时,点击不会通过。(为清楚起见:在包含标签的布局上设置了可点击app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"

于 2019-05-20T10:22:42.937 回答