2015-09-15 22 views
20

ナビゲーション・ドロワーの表示/非表示にはどのようにボタンを使用できますか?this SOリンクを使用してナビゲーション・ドロワーを作成および管理しています。ナビゲーション・ドロワーをプログラムで表示/非表示にする方法

:私はボタンを使用して/隠す引き出しは、スクリーンショットの下でハイライトされ表示されることがどのように

今私が使用しています(左から右にスワイプする - - 表示するように)と(非表示にするには右から左へスワイプ)

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" 
    /> 

編集:

 btnMenu.setOnClickListener(new OnClickListener() { 

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

を私はdrawer.closeDrawer(Gravity.LEFT);を呼び出す必要がありますが、私はこのコードを配置する必要がどこ閉じるには知っていますか?

答えて

42

DrawerLayoutへの参照を取得し、closeDrawer(int)を閉じて閉じるとopenDrawer(int)を呼び出して開きます。 intパラメータは重力を参照します。あなたが投稿したスクリーンショットに応じてDrawerLayoutが左に開閉されますので、Gravity.LEFTになるはずです

+0

をありがとうあなたのトリックは私のために働いたが、まだ私はドロワーを閉じるコードを配置する場所を知らない私のチェックコードを確認 – Sun

+3

同じボタンを使用します。 (drawer.isDrawerOpen(Gravity.LEFT)){//閉じる} else {//開く} ' – Blackbelt

+0

ナビゲーションドロワを閉じるには、単にdrawerLayout.closeDrawers()を呼び出します。 – developer1011

-2

スライド式の引き出しメニューを使用していて、右から左へ)。次に、listviewオブジェクトのontouchリスナーに対処しなければなりません。 コードは次のようになります。完全なコードについては

//(((When we drage from Right to left then menu hide)))) 
    lvMenu.setOnTouchListener(new OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 

      switch (event.getAction()) 
      { 
       case MotionEvent.ACTION_DOWN: 
        toggleMenu(v);     
        break; 

       case MotionEvent.ACTION_UP: 
        //showtoast("up"); 
        break; 

       default: 
        return false; 
      } 
      return false; 
     } 


    }); 

    public void toggleMenu(View v) { 
    mLayout.toggleMenu(); 
} 

あなたが引き出し閉めするために、任意の問題

-1

を持っている場合、あなたは、ここにコメントを入れることができます:引き出し開くために

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

を:

drawer.OpenDrawer((int)GravityFlags.Left); 
関連する問題