I have implemented Bottom Sheet functionality within my activity in onCreate() using this solution and this library
sheet = new BottomSheet.Builder(this,
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();
}
}
});