用户登录
用户注册

分享至

安卓-BottomSheetDialogFragment高度设置

  • 作者: 灬跪求粉色木耳灬
  • 来源: 51数据库
  • 2021-10-08

要设置Dialog的高度,重写onStart() 方法即可

    private BottomSheetBehavior<View> mBottomSheetBehavior;
    @Override
    public void onStart() {
        super.onStart();
        Dialog dialog = getDialog();

        if (dialog != null) {
            View bottomSheet = dialog.findViewById(R.id.design_bottom_sheet);
            bottomSheet.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
        }
        final View view = getView();
        view.post(new Runnable() {
            @Override
            public void run() {
                View parent = (View) view.getParent();
                CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) (parent).getLayoutParams();
                CoordinatorLayout.Behavior behavior = params.getBehavior();
                mBottomSheetBehavior = (BottomSheetBehavior) behavior;
                mBottomSheetBehavior.setPeekHeight(view.getMeasuredHeight());

                parent.setBackgroundColor(Color.TRANSPARENT);
            }
        });
    }

但是,有一点很重要,layout xml各个项目必须是从上往下画的

软件
前端设计
程序设计
Java相关