FragmentNavigator添加Fragment而不是替换,以实现透明背景。

12
当使用来自 AndroidX 的 Navigation 库时,我想在旧目标上方显示带有半透明背景的 Fragment。因此,基本上,FragmentNavigator 不是在其 navigate() 方法中执行 ft.replace(mContainerId, frag),而是执行 ft.add(mContainerId, frag)
我尝试过子类化 FragmentNavigator,但 API 受到极大限制(许多私有变量和包受保护的方法),因此无法正确重写 navigate() 方法以进行更改。
那么,使用 Navigation 库实现支持透明背景的 Fragment 的正确方法是什么?

2
你找到解决这个问题的方法了吗?@ianhanniballake,请您看一下这篇帖子好吗? - JavierSegoviaCordoba
4
我已经向Ian发送了消息。他说DialogFragments的支持很快就会到来。目前,我只是在根Activity中与NavController处于同一级别添加了另一个FrameLayout,并手动将具有透明背景的Fragment添加到其中,然后在返回按下时手动将其移除。虽然不太好,但可以完成任务。 - Bogdan Zurac
1
你能指导我如何子类化FragmentNavigator吗?在扩展它之后,我似乎不知道该做什么。 - Syed Ahmed Jamil
1个回答

1
如果您正在寻找的是对话框,则从2.1.0-alpha03开始已经完全支持。
您可以通过dialog目标实现您预期的行为,它将显示在当前目标之上。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接