2015-09-15 17 views
20

Gezinme Çekmecesini göstermek/gizlemek için düğmeyi nasıl kullanabilirim? Gezinme Çekmecesi oluşturmak ve yönetmek için this SO bağlantısını kullandım.Gezinme Çekmecesi nasıl gösterilir/gizlenir Program aracılığıyla

:

Şimdi

i kullanıyorum (soldan sağa kaydırın - - göstermek için) ve (sağdan sola doğru kaydırın gizlemek için)

nasıl düğmesi ekran görüntüsü aşağıda vurgulanan kullanarak/Gizle Çekmecesini gösterebilir

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

Düzenlendi:

 btnMenu.setOnClickListener(new OnClickListener() { 

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

Ben drawer.closeDrawer(Gravity.LEFT); aramak zorunda kapatmak için biliyorum ama sahip olduğu bu kodu yerleştirmek?

cevap

42

DrawerLayout referansını alın ve kapatmak için closeDrawer(int) numaralı telefonu ve openDrawer(int) numaralı telefonu arayın. Int parametresi yer çekimi anlamına gelir. Senin durumunda bu Gravity.LEFT olmalıdır çünkü buna göre yayınladığınız ekran, senin DrawerLayout açık ve yakından sol

+0

teşekkür ederim senin hile benim için çalıştı, ama yine de çekmece kapatmak için kodu nereye koyacağımı bilmiyorum, Düzenlenmiş kodumu kontrol edin – Sun

+3

aynı düğmeyi kullanın. 'if (drawer.isDrawerOpen (Gravity.LEFT)) {// close} else {// open}' – Blackbelt

+0

Gezinme çekmecesini kapatmak için drawerLayout.closeDrawers() öğesini çağırın. – developer1011

-2

Eğer Çekmece Menüsünü Sürme kullanıyorsanız ve açıkken menü gizlemek istediğiniz (sürükle için sağdan sola doğru). Ardından, listview nesnesi ile ilgili dinleyiciyi ele almak zorundayız. Kod böyle olacak. Eğer herhangi bir sorun varsa

tam kod için
//(((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(); 
} 

, sen

-1

Kapatmak için buraya yorumunu koyabilirsiniz Çekmece:

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

Aç Çekmece:

drawer.OpenDrawer((int)GravityFlags.Left); 
İlgili konular