【问题标题】:NavigationDrawer with childfragments and activity带有子片段和活动的 NavigationDrawer
【发布时间】:2015-06-18 10:54:59
【问题描述】:

我有一个活动 A、一个 ListFragment L 和 2 个片段 F1 和 F2。

应用启动时,创建A,加载L。根据用户点击的内容,替换为F1或F2

我已经实现了一个向用户显示某些项目的导航抽屉。但是,由于我在 Activity 中实现了 Navigation Drawer,它会显示所有片段。但我希望显示 A 可见

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

我不知道如何翻译上面的代码。提前致谢

【问题讨论】:

  • 它使用抽屉切换,如果你对特定片段禁用它,它将是返回按钮。
  • 对不起,我没听懂你在说什么
  • 有 disableToggle() 函数,它不会显示抽屉图标和显示返回图标,但仍然可以从左滑动打开抽屉(也可以在 gmail 中)。如果你愿意,我会提供演示代码。
  • k 请提供演示代码。

标签: android navigation-drawer


【解决方案1】:

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

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

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

我希望你的活动中会有'NavigationDrawerFragment',添加这个方法:

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);
}

编辑:查看以上代码的快照

主片段

细节片段

【讨论】:

  • 你有调用 getActionBar().setHomeAsUpUnabled(true); 吗?在 MainActivity 的 disableToggle() 中调用它。
  • 它不会回到抽屉里。我需要抽屉和活动。
  • 我没听懂。你的意思是它没有显示抽屉按钮?您是否在适当的类中添加了方法?中间的要添加到MainActivity中。并且不要在第一个片段中添加第一部分。
  • yaa....我在第一个片段中删除了第一部分方法。然后它像普通抽屉一样工作。但它不是我的实际输出..你得到我要求实现的问题了吗?如果没有得到。请告诉我,我会再次解释
  • 好的,再告诉我一次,或者放任何示例图像以获取详细信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-14
  • 2014-04-28
  • 2015-02-03
  • 2021-02-28
相关资源
最近更新 更多