在TabHost内部更改活动转换

Dra*_*ken 1 android transition android-animation

我已经成功地改变了活动之间的转换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);
}
Run Code Online (Sandbox Code Playgroud)

因此,我相信在我试图覆盖它们之后会覆盖挂起的转换.

我应该做那个不同的地方吗?我在做其他一些愚蠢的错误吗?

谢谢 !

typ*_*rpr 6

我在Fragment中调用overridePendingTransition()时遇到了类似的问题,因为Fragments没有定义overridePendingTransition()方法.

我解决了它:

getActivity().overridePendingTransition(R.anim.enterAnim, R.anim.exitAnim);
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.片段在TabHost中.


Dra*_*ken 5

我发现问题是因为我的视图是标签内的子活动.

为了正确覆盖转换,我已经覆盖了onPause方法TabActivity,它现在按预期工作.

注意:overridePendingTransition()如果您的活动不在标签内,您仍然必须在项目的监听器上使用.