2

有两个活动。

Activity A 有一个可以切换到 Activity B 的按钮。

Activity B还有一个按钮可以切换到Activity A。

这是我的代码,

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
    Log.e("current", context.getClass().toString());
    Log.e("changeto", tab.getTag().toString());
    if(context.getClass()==tab.getTag())
        return;

    Intent intent = new Intent(new Intent(context,(Class<?>) tab.getTag()));
    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    context.startActivity(intent); 
}

我想在切换活动时删除动画,但它不起作用。

但是,如果我删除

intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

它完美地工作。为什么?

对不起,我的英语不好。

4

2 回答 2

8

在您要切换到的 Activity 中,尝试 overridePendingTransition(0,0);在 onResume 或 onCreate 中使用。

于 2012-09-02T04:27:12.520 回答
0

如果您在选项卡开关中调用 startActivity,那么您做错了。选项卡用于在当前活动中切换视图,并且切换选项卡不应创建导航历史记录。考虑切换片段或用新选择的选项卡的内容替换视图层次结构。

你越是追求切换选项卡选择活动的路径,你就越会发现自己在玩“打地鼠”,带有微妙的用户体验错误,这些错误会让你的应用程序简单地感觉“错误”。

使用上面建议的实现,“后退”按钮将返回到先前选择的选项卡,从而打破“从不创建导航历史”规则。您可能认为在开始下一个 Activity 时完成()当前 Activity 可以解决此问题,但您仍然会遇到许多其他问题。用户期望状态的微妙元素(例如滚动位置)在选项卡中持续存在。从 Android 4.0 开始,用户应该能够在选项卡 ( http://developer.android.com/design/building-blocks/tabs.html ) 之间水平滑动,如果您是为每个选项卡的内容使用单独的活动。

这只是一个小样本,名单还在继续。不应使用选项卡在不同的活动之间切换。

于 2012-09-02T04:50:03.373 回答