通过DialogFragment使用FragmentTransaction

问题描述 投票:12回答:4

所以我创建了一个DialogFragment,它通过此technique显示为对话框”>

现在,它已经启动,并且在此弹出窗口中与用户交互时,我想在此对话框的另一个片段中滑动。我试图通过FragmentTransaction.add()做到这一点,在这里我给它一个布局中容器之一的ID。此时,我得到:

java.lang.IllegalArgumentException: No view found for id 0x7f09013f for fragment <fragmentClassThatIWasPushingIn>

作为一项快速测试,我尝试将其推入容器ID中,而不是在对话框中,而是在主要支持活动中,并且效果很好。

关于DialogFragments及其容器ID是否存在不允许FragmentTransactions的内容?

作为权宜之计,我告诉我的交易隐藏当前的DialogFragment并显示此新片段,但是动画/显示有点刺耳,所以我真的很想解决此问题。

谢谢

因此,我已经创建了一个DialogFragment,它通过这种技术显示为对话框。既然启动了它,并且在此弹出窗口中用户交互时,我想将另一个片段滑入该对话框。 ...

android android-3.0-honeycomb android-fragments
4个回答
16
投票

[DialogFragment显示为Dialog时,在容器视图中实际上不是实际的Fragment。它是一个无容器的Fragment,基本上是Dialog的包装。


3
投票

[alexanderblom是正确的,DialogFragment充当对话框,但是可以将其用作setShowsDialog(false);的片段


1
投票

实际上,您可以在onCreateView方法中看到一个容器。您使用容器创建视图。


0
投票

使用commitAllowingStateLoss()显示DialogFragment

© www.soinside.com 2019 - 2024. All rights reserved.