【问题标题】:Is it possible to intercept and cancel a FragmentTransaction是否可以拦截和取消 FragmentTransaction
【发布时间】:2012-08-06 17:17:27
【问题描述】:

我在 ActionBar (Sherlock) 上有两个选项卡。在某些情况下,我想询问用户是否尝试离开当前选项卡并在未确认时停止选项卡更改。这主要是由于在用户在另一个选项卡上摆弄其设置之前停止了进程。

当我使用 TabHost 时,我有一个非常丑陋但可行的解决方案,在选项卡本身上有一个 OnTouchListener,因此我可以在事件真正处理之前拦截它。 ActionBar 选项卡似乎不能有触摸监听器,所以这似乎是不可能的。

现在有了 ActionBar,我有 TabListeners 来处理 FragmentTransaction 上的分离和附加。有什么简单的方法可以取消交易吗?我想我可以对 onTabUnselected 和 onTabSelected 进行检查,只是不进行相应的分离和附加操作,但这感觉有点复杂。

如果停止标签更改听起来过于愚蠢,我也愿意接受其他建议。

【问题讨论】:

    标签: android android-fragments android-actionbar


    【解决方案1】:

    好的,这就是我最终要做的,以防有人在这里绊倒。我找不到任何合理的方法来阻止选项卡更改或获取选项卡视图以附加触摸侦听器。令人恼火,至少可以这么说。

    我使用 TabListener 来附加一个空片段,以防我想将用户返回到原始选项卡。在这个片段的 onResume() 中,我打开了一个对话框,提供继续第二个选项卡或返回第一个选项卡的选择。在这两种情况下,我只需使用正确的选项卡调用操作栏的 setSelectedNavigationItem(),TabListener 将处理传输,处理我的空片段。

    最后它实际上工作得很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-15
      • 2017-08-04
      • 2011-08-26
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多