web-dev-qa-db-fra.com

Afficher et masquer la feuille de fond par programme

J'ai implémenté la fonctionnalité Bottom Sheet dans mon activité dans onCreate () en utilisant la solution this et this

   sheet = new BottomSheet.Builder(this, R.style.BottomSheet_Dialog)
        .title("New")
        .grid() // <-- important part
        .sheet(R.menu.menu_bottom_sheet)
        .listener(new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO
    }
}).build();

Maintenant, je voudrais montrer la feuille inférieure, en cliquant sur le bouton et de la même manière, je veux masquer la feuille inférieure en cliquant sur le même bouton, si elle est déjà visible.

18
Sophie

Dans votre onClick() du bouton, utilisez: sheet.show().

Ensuite, lorsque vous souhaitez le supprimer, utilisez sheet.dismiss();

Ci-dessous une solution possible:

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();    
        }
    }
});
17
MatPag

Pour fermer BottomSheetDialogFragment de l'intérieur du fragment, vous pouvez appeler:

dismiss();

Pour afficher ou masquer le BottomSheetDialogFragment de l'activité, vous pouvez simplement appeler:

bottomSheetDialogFragment.dismiss();//to hide it
bottomSheetDialogFragment.show(getSupportFragmentManager(),tag);// to show it
27
Malek Hijazi

utilisez le code suivant

new BottomSheet.Builder(getActivity()).title("Your Title here").sheet(R.menu.bottom_sheet).listener(new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                switch (which) {
                    case R.id.cancel:
                        dialog.cancel();
                        break;
                    case R.id.view:
                        //Todo view code here
                        dialog.cancel();
                        break;
                }
            }
        }).show();
0
Muhammad Hamza Shahid