Show and Hide Bottom Sheet Programmatically
To close the BottomSheetDialogFragment from inside the fragment you can call:
dismiss();
To show or hide the BottomSheetDialogFragment from the activity you can simply call:
bottomSheetDialogFragment.dismiss();//to hide itbottomSheetDialogFragment.show(getSupportFragmentManager(),tag);// to show it
Inside your onClick()
of the button use: sheet.show()
.
Then when you want to dismiss it, use sheet.dismiss()
;
Here below a possible solution:
BottomSheet sheet = new BottomSheet.Builder(...).build();Button button = (Button)findViewById(R.id.mybutton);button.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { //you can use isShowing() because BottomSheet inherit from Dialog class if (sheet.isShowing()){ sheet.dismiss(); } else { sheet.show(); } }});
For showing the Bottom Sheet use this code:
bottomSheetInfoBehavior.setHideable(false);bottomSheetInfoBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
For Hiding the Bottom sheet use this code:
bottomSheetInfoBehavior.setHideable(true);bottomSheetInfoBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);