从ActionBar.TabListener中显示DialogFragment

4
在ActionBar中选择选项卡时,是否可以显示FragmentDialog?
onTabSelected()方法在执行完成后会发生在一个事务中。但是,在DialogFragment中的show()方法也会自动发生在一个事务中。因此,如果您尝试在选择选项卡时显示对话框,则会出现RuntimeException,因为事务被提交两次。
欢迎提供任何提示。
1个回答

3

忽略传入的FragmentTransaction参数。

比如,如果你使用的是Android兼容库(ACL),因为从操作栏获取到的FragmentTransaction是Android 3.0的FragmentTransaction,而不是ACL的FragmentTransaction,所以你要忽略传入的参数,使用自己的FragmentTransaction

同样地,我认为你可以忽略FragmentTransaction,自己显示一个DialogFragment,没有问题。

但是,用户接受对话框后,选项卡上会显示...什么也没有?这将影响用户体验。


该想法是在内容区域顶部(仅在操作栏下方)显示某种子菜单,当选中一个标签时。该子菜单包含过滤选项,在选择后将替换内容区域为实际内容。 - mgv
@mgv:::耸肩::对我来说仍然听起来很奇怪。子菜单看起来没问题;使用像对话框这样的短暂 UI 元素不行。用户点击选项卡,在子菜单中选择一个项目,然后……现在无法从子菜单中选择其他任何东西,因为它已经消失了。为什么不使用“列表”导航代替选项卡,并在“Spinner”中呈现行以显示您的菜单层次结构? - CommonsWare
没错,听起来有点奇怪。我被要求以这种方式做,但我想为了我的派对权利而战,并遵循你的建议。附言:忽略FragmentTransaction是有效的,所以你的答案是正确的。 - mgv

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