2015-06-18 26 views
0

我有一个活动A,一个ListFragment L和2个Fragments F1和F2。带有子页面和活动的NavigationDrawer

当应用程序启动时,会创建一个,它加载基于L.什么用户点击,它是由F1或F2

我实现了一个抽屉式导航,显示某些项目给用户更换。但是,由于我已经在活动中实施了导航抽屉,因此它显示了所有碎片。但我想要显示A是可见的

(非常类似于谷歌Gmail应用程序。当用户在主屏幕上 - 抽屉存在。当用户点击打开电子邮件时,抽屉更改为后退按钮)

我不知道如何翻译上面的代码。在此先感谢

+0

其采用抽屉式切换,如果你禁用它partic ular片段,它将返回按钮。 – Harry

+0

对不起,我不明白你在说什么 –

+0

有功能disableToggle(),它不会显示抽屉图标和回显图标,但仍然可以从左侧刷卡(也在Gmail中)打开抽屉。如果你想我会提供演示代码。 – Harry

回答

0

在你内心的片段(比如查看邮件)

@Override 
public void onPause() 
{ 
super.onPause(); 
((MyActivity) getActivity()).enableToggle(); 
} 

@Override 
public void onResume() 
{ 
super.onResume(); 
((MyActivity) getActivity()).disableToggle(); 
} 

我希望会有“NavigationDrawerFragment'in您的活动,添加这个方法:

public void disableToggle() 
{ 
if (mNavigationDrawerFragment != null) 
    mNavigationDrawerFragment.disableToggle(); 
} 

public void enableToggle() 
{ 
if (mNavigationDrawerFragment != null) 
    mNavigationDrawerFragment.enableToggle(); 
} 

在NavigationDrawerFragment添加此方法: 另外检查你是否使用android.support.v7.app.ActionBarDrawerToggle;

public void disableToggle() 
{ 
if (mDrawerToggle != null) 
    mDrawerToggle.setDrawerIndicatorEnabled(false); 
} 

public void enableToggle() 
{ 
if (mDrawerToggle != null) 
    mDrawerToggle.setDrawerIndicatorEnabled(true); 
} 

编辑:看到快照上面的代码

MainFragment

2

DetailFragment

2

+0

不行不行 –

+0

你有没有叫过getActionBar()。setHomeAsUpUnabled(true);?在MainActivity中的disableToggle()中调用它。 – Harry

+0

它不会回抽屉。我需要抽屉以及活动。 –