与BottomSheets的昏暗屏幕和块交互

时间:2016-06-02 15:54:19

标签: android android-layout android-fragments android-view bottom-sheet

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

3 个答案:

答案 0 :(得分:2)

'd'

在您的活动中:

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

现在,你将变暗,当点击昏暗时,对话框将会关闭。

enter image description here

here开始实施。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

请注意,有两种实现方式:

  

BottomSheetBehaviorBottomSheetDialogFragment

使用BottomSheetDialogFragment来获得所需的功能。

此外,在使用BottomSheetBehavior时,请设置布局的android:clickable="true"。这样一来,点击空白时就不会出现点击。(为清楚起见:在包含标签app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"的布局中设置了clickable)