android學習筆記:DrawerLayout實現側邊欄,
DrawerLayout需要的布局檔案
首先要以 android.support.v4.widget.DrawerLayout 作為標籤。
另外需要將設定的側邊欄布局的 android:layout_gravity="start" start設定為左邊布局,end設定為右邊布局。
在activity中的代碼:
private DrawerLayout mDrawerLayout;
private ActionBarDrawerToggle mActionBarDrawerToggle;
// ActionBarDrawerToggle 應該用的 android.support.v7.app.ActionBarDrawerToggle 包中的。如果沒有請inport V7庫 support/v7/appcompat
//得到的是側邊欄的id
mDrawerLayout = (DrawerLayout) findViewById(R.id.f1);
mActionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.string.open, R.string.close);
//對mDrawerLayout 進行監聽。
mDrawerLayout.setDrawerListener(new DrawerListener() {
@Override
public void onDrawerStateChanged(int arg0) {
mActionBarDrawerToggle.onDrawerStateChanged(arg0);
}
@Override
public void onDrawerSlide(View arg0, float arg1) {
mActionBarDrawerToggle.onDrawerSlide(arg0, arg1);
}
@Override
public void onDrawerOpened(View arg0) {
mActionBarDrawerToggle.onDrawerOpened(arg0);
}
@Override
public void onDrawerClosed(View arg0) {
mActionBarDrawerToggle.onDrawerClosed(arg0);
}
});
註:另外一種簡單監聽方式
mDrawerLayout.setDrawerListener(mActionBarDrawerToggle);
@Override
protected void onPostCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onPostCreate(savedInstanceState);
mActionBarDrawerToggle.syncState();
}
public boolean onOptionsItemSelected(MenuItem item) {
return mActionBarDrawerToggle.onOptionsItemSelected(item)
|| super.onOptionsItemSelected(item);
}