我已使用overridePendingTransition()
成功更改了活动之间的转换。
不幸的是,当我在TabActivity
并使用每个标签内的活动时。当标签内容中的其中一个活动启动另一个活动时,overridePendingTransition()
似乎无效。
我基本上有一个TabActivity
,里面有一个ListView
的活动。我正在做的是当点击该项目时,我启动了项目详细信息的活动。
此新活动的过渡动画未被overridePendingTransition()
我基本上这样做:
private Activity owner;
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent programActivity = new Intent().setClass(view.getContext(), ProgramActivity.class);
Program program = (Program) parent.getItemAtPosition(position);
programActivity.putExtra("programID", program.getId());
owner.startActivity(programActivity);
owner.overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
所以,我相信在我试图覆盖它们之后会覆盖挂起的转换。
我应该这样做吗? 我在做其他一些愚蠢的错误吗?
谢谢!
答案 0 :(得分:6)
我在Fragment中调用overridePendingTransition()时遇到了类似的问题,因为Fragments没有定义overridePendingTransition()方法。
我用以下方法解决了它:
getActivity().overridePendingTransition(R.anim.enterAnim, R.anim.exitAnim);
希望它有所帮助。片段在TabHost中。
答案 1 :(得分:5)
我发现问题是因为我的视图是标签内的子活动。
要正确覆盖转换,我已覆盖onPause
上的TabActivity
方法,现在它可以按预期工作。
注意:如果您的活动不在标签内,则仍需要在听众的overridePendingTransition()
上使用{{1}}。