web-dev-qa-db-fra.com

Comment afficher / masquer le tiroir de navigation par programmation

Comment puis-je utiliser le bouton pour afficher/masquer le tiroir de navigation, j'ai utilisé ce SO lien pour créer et gérer le tiroir de navigation).

Maintenant, j'utilise (Glisser de droite à gauche - pour afficher) et (Glisser de droite à gauche - pour cacher)

Comment puis-je afficher/masquer le tiroir à l'aide du bouton mis en évidence dans la capture d'écran ci-dessous:

enter image description here

header_home.xml:

<RelativeLayout        
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_height="wrap_content"
    Android:layout_width="fill_parent"
    Android:id="@+id/header_layout" 
    Android:gravity="fill_horizontal" 
    Android:layout_gravity="top|center">


 <TextView
    Android:id="@+id/textHeader"
    Android:text="Home"
    Android:textColor="#ffffff"
    Android:gravity="center"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:background="@drawable/bg_header"
 />

 <ImageButton
    Android:id="@+id/btnDrawer"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_marginLeft="10dp"
    Android:layout_alignParentLeft="true"
    Android:layout_centerVertical="true"
    Android:adjustViewBounds="true"
    Android:background="@drawable/icon_drawer"
    Android:contentDescription="@string/app_name"
    />

Modifié:

     btnMenu.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            drawer.openDrawer(Gravity.LEFT);                
        }
    });

Je sais que pour fermer je dois appeler drawer.closeDrawer(Gravity.LEFT); mais où dois-je placer ce code?

31
Sun

Saisissez une référence au DrawerLayout et appelez closeDrawer (int) pour le fermer et openDrawer (int) pour l'ouvrir. Le paramètre int fait référence à la gravité. Dans votre cas, ce devrait être Gravity.LEFT/Gravity.START, car en fonction de la capture d'écran que vous avez publiée, votre DrawerLayout s'ouvre et se ferme sur la gauche.

57
Blackbelt

pour fermer le tiroir:

drawer.CloseDrawer((int)GravityFlags.Left);

pour ouvrir le tiroir:

drawer.OpenDrawer((int)GravityFlags.Left);
3
yaniv maymon