0

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

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

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

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

4

1 回答 1

1

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

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

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

于 2012-08-15T19:02:44.933 回答