TabHost中的Activity调用overridePendingTransition()方法无效

  次阅读 来源:互联网(转载协议) 2015-10-03 11:11 我要评论(0)

在定义的MyActivity中,继承的是TabActivity,添加了几个Activity,比如说A、B、C,采用了TabHost管理切换不同的主页面。

现在A如果展示的是一个列表,点击每一项,可以进入A的子页面,这时候希望具有自定义的动画效果,但是发现仅仅使用overridePendingTransition()却没有效果。

网上查阅了些资料,发现这个可以用,于是对其稍微整理了下,没有深入分析,贴出来仅作参考。

原文链接:http://blog.sina.com.cn/u/2377683267

首先,要说的是ActivityA到ActivityB的切换这个相对简单,只要overridePendingTransition(In,out)。 这里不就说了。但是这里要说名的ActivityA不能TABHost里面的一个。因为Tabhost里面有自己的Activity其实还没有跳出 Tabhost生命。这个可以Log,Tabhost生命周期试试就知道了。其实Tabhost里面嵌套的Activity都在生命周期都在 Tabhost里面。这样的话,Tabhost里面的Activity跳转到其他(非Tabhost里面的Activity)时,调用 overridePendingTransition(In,out)。其跳转效果还是默认的,这么句代码的效果是不会出现的。

你点击里面的ListView的一个子项。跳出Tabhost你在点击事件里面调用overridePendingTransition(In,out)。是没有用的。

现在解决这个问 题:因为Tabhost也有自己默认的overridePendingTransition()方法,我解决的方法是继承TabActivity的 Activity的onPause()方法里调用overridePendingTransition(In,out)。In,out这个两个参数放在一 个类里面。 这样的话,就可以在要转的地方调用修改这个两个参数的方法。

public class AnimationUtil {

/**

* anim中的布局ID

*/

public static int ANIM_IN = 0;

/**

* anim中的布局ID

*/

public static int ANIM_OUT = 0;

/**

* 通过动画xml文件的id设置需要使用的动画布局文件

*

* @param layoutIn

* @param layoutOut

*/

public static void setLayout(int layoutIn, int layoutOut) {

ANIM_IN = layoutIn;

ANIM_OUT = layoutOut;

}

/**

* 设置id为0

*/

public static void clear() {

ANIM_IN = 0;

ANIM_OUT = 0;

}

}

跳转时的代码

Intent intent = new Intent(InformActivity.this, InformItemActivity.class);

AnimationUtil.setLayout(R.anim.zoom_enter,R.anim.zoom_exit);

startActivity(intent);

然后在继承了TabActivity的类中,重写onPause()方法:

@Override

protected void onPause() {

if (AnimationUtil.ANIM_IN != 0 && AnimationUtil.ANIM_OUT != 0) {

super.overridePendingTransition(AnimationUtil.ANIM_IN,

AnimationUtil.ANIM_OUT);

AnimationUtil.clear();

}

super.onPause();

}

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

    Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

  • teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

    teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

  • Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

    Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

  • 2018深圳国际人工智能展览会 2018 shenzhen International Artif

    2018深圳国际人工智能展览会 2018 shenzhen International Artif

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...