【问题标题】:Is there a way do open a navigation drawer in front of a dialog fragment有没有办法在对话框片段前面打开一个导航抽屉
【发布时间】:2016-12-01 00:02:46
【问题描述】:

我有一个使用导航抽屉作为菜单的小应用程序。这看起来。我的问题是,当打开一些模态对话框片段时,抽屉也应该可用。

我设法使用 GestureDetector 正确识别滑动手势并将结果转发给主活动。那叫

    drawerLayout.openDrawer 

方法。工作正常,但抽屉出现在对话框的背景中。

有没有简单的方法把抽屉拉到前面?

  • 我是否必须为导航抽屉创建自己的片段并自己处理?
  • 如果是这样,您知道如何轻松存档的任何代码示例
  • 我是否必须以某种方式为对话框片段指定抽屉(如何)?

欢迎所有建议/提示。提前致谢

【问题讨论】:

  • 一般来说,对话框用于要求用户操作/输入才能继续,那么您为什么要绕过这种正常行为呢?
  • 这不是我的决定。该应用程序是从 WinME 设备移植的,前提是它看起来相似。对话框用于流控制,但始终可以选择菜单项来执行独立于主视图当前状态的附加操作。我这样做不是因为我想那样做,而是因为我不得不那样做。

标签: android android-fragments android-dialogfragment


【解决方案1】:

我的结果如下:

  • 我使用的是自己的对话框界面,基本上提供了对话框的标准方法(show/dismiss/...)。
  • 有一种扩展真实对话框的实现(用于不需要菜单的情况)
  • 另一个是扩展一个片段 (NO DialogFragment)
  • 我自己的对话框样式片段创建了一个半透明的布局,覆盖了整个屏幕,消耗了触摸事件。其中有一个相对布局保存对话框的视图/内容(由 setContentView 设置)。该布局使用定义对话框外观的背景可绘制对象。
  • show/dismiss 方法将从片段管理器中添加/删除它。

所以它是一个普通的片段,包含一个表示对话框的视图。我还检查了几个属性(位置、可以设置为对话框的标志)并尝试将它们应用于显示的视图。

我对这种方法并不完全满意,它肯定有几个缺点,但现在它满足了我的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多