【问题标题】:How to disable drawer option in specific fragments of an activity如何在活动的特定片段中禁用抽屉选项
【发布时间】:2016-10-10 07:38:05
【问题描述】:

我有一个包含 5 个片段的活动,我在我的活动中使用了抽屉布局作为抽屉,但我想仅在片段 2 中使用(启用)抽屉,并且我想禁用剩余片段中的抽屉选项。

谁能帮助我如何做到这一点?

【问题讨论】:

  • 显示这个答案可能对你有帮助stackoverflow.com/a/36250280/5773037
  • 您是要禁用整个抽屉,还是只禁用其中的某些项目?
  • @MikeM。是的!我隐藏了工具栏中的按钮,但如果你从屏幕抽屉的左侧滑动仍然来。
  • 是的,那么您想锁定抽屉,正如我在 Nikunj 链接的回答中所展示的那样。如果您已经自己处理了,则可以省略那里的切换内容。

标签: android navigation-drawer drawerlayout


【解决方案1】:

activity 中添加两种方法,一种是禁用drawer,另一种是再次启用它,如下所示:

public void lockDrawer() {
    drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
}


public void unlockDrawer() {
    drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
}

然后在您的fragments onCreateView(...) 方法中放入:

fragmentInteractionListener.lockDrawer();

对于drawer 应该保持关闭的fragmentsdrawer 应该保持打开状态的fragments

fragmentInteractionListener.unlockDrawer();

P.S:有关如何正确实现fragment 交互侦听器的教程,请参阅:

https://developer.android.com/training/basics/fragments/communicating.html

【讨论】:

  • 这不是片段和活动之间的通信方式。 developer.android.com/training/basics/fragments/…
  • 如果您阅读我的 P.S,我承认这一点,但为了便于演示这个概念,我使用 getActivity @k0sh
  • o0ops,我没有看到,但您应该提供一个适当的示例,因为这可能只会导致 OP 出现其他问题。无论如何,我找回了我的 -1,+1
  • 没问题,感谢您的 +1,我更改了答案并添加了指向您建议的教程的链接 @k0sh
  • 抱歉,我不明白这应该如何工作。 fragmentInteractionListener 是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多