有两项活动。
活动A有一个可以切换到活动B的按钮。
活动B还有一个可以切换到活动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);
它完美无缺。为什么呢?
抱歉我的英语不好。
答案 0 :(得分:7)
在您要切换到的活动中,尝试在onResume或onCreate中使用overridePendingTransition(0,0);
。
答案 1 :(得分:0)
如果你在制表符开关中调用startActivity,那你就错了。选项卡用于在当前活动中切换视图,切换选项卡永远不应创建导航历史记录。考虑使用新选择的选项卡内容切换片段或替换视图层次结构。
你为选项卡选择切换活动的路径越多,你就越会发现自己玩弄含有微妙用户体验错误的傻瓜,这会让你的应用感觉“错误”。
通过上面提议的实现,“后退”按钮将返回先前选择的选项卡,打破“从不创建导航历史记录”规则。您可能认为在开始下一个时完成()当前活动可以解决这个问题,但是您仍然会遇到许多其他问题。用户期望状态的微妙元素(例如滚动位置)在选项卡上保持不变。从Android 4.0开始,用户应该能够在选项卡(http://developer.android.com/design/building-blocks/tabs.html)之间水平滑动,如果您为每个选项卡的内容使用单独的活动,则无法完成这些选项。
这只是一个小样本,列表就在继续。选项卡不应用于在不同的活动之间切换。