检测Fragment上的NavigationDrawer状态

时间:2014-11-13 06:39:04

标签: android navigation-drawer

我的BaseActivity中有一个导航抽屉。现在我想在单独的片段中检测NavigationDrawer状态(已打开或已关闭)。我在Fragment生命周期方法中尝试过,但是在打开或关闭NavaigationDrawer时没有触发任何方法。任何人请帮助我。提前谢谢。

3 个答案:

答案 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)

在您的navigationdrawetivity中

将抽屉布局设为公共

public DrawerLayout drawerLayout;

在你的片段中

NavigationsDrawerActivity _activity =(NavigationsDrawerActivity)this.Activity;

然后添加你的活动

this._activity.drawerLayout.DrawerOpened += drawerLayout_DrawerOpened;
this._activity.drawerLayout.DrawerClosed += drawerLayout_DrawerClosed;