2015-12-14 16 views

回答

7

呀還有,你可以爲聽衆

public abstract void onDrawerClosed (View drawerView) 
public abstract void onDrawerOpened (View drawerView) 
public abstract void onDrawerSlide (View drawerView, float slideOffset) 
public abstract void onDrawerStateChanged (int newState) 

使用四個抽象方法可以使用這樣的

ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, 
     R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) { 
    public void onDrawerClosed(View view) { 
     super.onDrawerClosed(view); 
     // Do whatever you want here 
    } 
    public void onDrawerOpened(View drawerView) { 
     super.onDrawerOpened(drawerView); 
     // Do whatever you want here 
    } 
}; 
mDrawerLayout.setDrawerListener(mDrawerToggle); 

抄自http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.DrawerListener.html

+0

setDrawerListener在API級別23.2.0中已棄用。使用addDrawerListener – fmog

3

您可以通過使用ActionBarDrawerToggle通過使用這段代碼知道:

 ActionBarDrawerToggle drawerToggle = new android.support.v7.app.ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) { 

     @Override 
     public void onDrawerClosed(View drawerView) { 
      super.onDrawerClosed(drawerView); 

     } 

     @Override 
     public void onDrawerOpened(View drawerView) { 
      super.onDrawerOpened(drawerView); 

     } 
    }; 
    mDrawer.setDrawerListener(drawerToggle); 
0

有在抽象內部類的 'DrawerLayout' 級 'DrawerListener'

public abstract void onDrawerClosed (View drawerView) 
public abstract void onDrawerOpened (View drawerView) 
public abstract void onDrawerSlide (View drawerView, float slideOffset) 
public abstract void onDrawerStateChanged (int newState) 

有用的實施例提供了4種抽象方法:

((DrawerLayout) findViewById(R.id.drawer_layout)).addDrawerListener(new DrawerLayout.DrawerListener() { 
     @Override 
     public void onDrawerSlide(@NonNull View drawerView, float slideOffset) { 
      // Whatever you want 
     } 

     @Override 
     public void onDrawerOpened(@NonNull View drawerView) { 
      // Whatever you want 
     } 

     @Override 
     public void onDrawerClosed(@NonNull View drawerView) { 
      // Whatever you want 
     } 

     @Override 
     public void onDrawerStateChanged(int newState) { 
      // Whatever you want 
     } 
    }); 

可以檢查此爲更詳細的信息HERE