我的BaseActivity中有一个导航抽屉。现在我想在单独的片段中检测NavigationDrawer状态(已打开或已关闭)。我在Fragment生命周期方法中尝试过,但是在打开或关闭NavaigationDrawer时没有触发任何方法。任何人请帮助我。提前谢谢。
答案 0 :(得分:0)
您可以在片段中使用这行代码来检查抽屉是否关闭:
DrawerLayout mDrawerLayout = (DrawerLayout)getActivity().findViewById(R.id.drawer_layout);
ListView mDrawerList = (ListView) getActivity().findViewById(R.id.list_slidermenu);
if (!mDrawerLayout.isDrawerOpen(mDrawerList)){
System.out.println("The Drawer is closed!");
}
基本上,您从托管该片段的活动调用布局。
答案 1 :(得分:0)
您必须在基本活动中实施DrawerListener
BaseActivity implements DrawerListener
现在你必须分配
yourNavigationDrawerObject.setDrawerListener(this);//please put your object behalf of yourNavigationDrawerObject
当导航抽屉关闭时调用。
@Override
public void onDrawerClosed(View arg0) {
// TODO Auto-generated method stub
}
导航抽屉打开时打电话
@Override
public void onDrawerOpened(View arg0) {
// TODO Auto-generated method stub
}
答案 2 :(得分:0)
将抽屉布局设为公共
public DrawerLayout drawerLayout;
在你的片段中
NavigationsDrawerActivity _activity =(NavigationsDrawerActivity)this.Activity;
然后添加你的活动
this._activity.drawerLayout.DrawerOpened += drawerLayout_DrawerOpened;
this._activity.drawerLayout.DrawerClosed += drawerLayout_DrawerClosed;