你的位置:首页 > 操作系统

[操作系统]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);
}