天天看点

BottomSheetDialog获得BottomSheetBehavior的方法

在BottomSheetDialog调用setContentView方法之后,获得BottomSheetBehavior的方法。

( mBottomSheetDialog.setContentView(mContentView); )

第一种:

BottomSheetBehavior mDialogBehavior = BottomSheetBehavior.from((View) mContentView.getParent());

mDialogBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);//展开

第二种:

final FrameLayout frameLayout = (FrameLayout) dialog.findViewById(android.support.design.R.id.design_bottom_sheet);

frameLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

            @Override

            public void onGlobalLayout() {

                frameLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);

                BottomSheetBehavior behavior = BottomSheetBehavior.from(frameLayout);

behavior.setPeekHeight(0);//BottomSheetBehavior停留的高度

                behavior.setState(BottomSheetBehavior.STATE_EXPANDED);//展开

                frameLayout.forceLayout();

}

参考:

http://www.jianshu.com/p/38af0cf77352/comments/1892069