zoukankan      html  css  js  c++  java
  • BottomSheetDialogFragment 如何设置高度和禁止滑动

    主要是获取dialog 的BottomSheetBehavior 然后设置 setPeekHeightBottomSheetCallback.

    private BottomSheetBehavior.BottomSheetCallback mBottomSheetBehaviorCallback = new BottomSheetBehavior.BottomSheetCallback() {
            @Override
            public void onStateChanged(@NonNull View bottomSheet, int newState) {
                //禁止拖拽,
                if (newState == BottomSheetBehavior.STATE_DRAGGING) {
                    //设置为收缩状态
                    mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
                }
            }
            @Override
            public void onSlide(@NonNull View bottomSheet, float slideOffset) {
            }
        };
    
        @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.MATCH_PARENT;
            }
            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.setBottomSheetCallback(mBottomSheetBehaviorCallback);
                    Display display = getActivity().getWindowManager().getDefaultDisplay();
                    //设置高度
                    int height = display.getHeight() *2/3;
                    mBottomSheetBehavior.setPeekHeight(height);
                    parent.setBackgroundColor(Color.TRANSPARENT);
                }
            });
        }
     @Nullable
        @Override
        public View onCreateView(final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            View view =inflater.inflate(R.layout.fragment_bottom_sheet,container,false);
           return view;
        }

     https://blog.csdn.net/a1018875550/article/details/80954244

  • 相关阅读:
    怎么说???
    再给自己一点鼓励
    还是不要看新闻的好
    系统架构师
    朋友
    未来的路
    I now have a dream
    纪念死去的手机
    全局规划
    终于要上战场了!
  • 原文地址:https://www.cnblogs.com/changyiqiang/p/9353240.html
Copyright © 2011-2022 走看看