我在一个内部类中使用了overridePendingTransition ,预期的效果是从下往上弹出 结果是从左到右的。这奇怪了,我按照网上的说法一个一个排查,有的说是动画时间设置的问题,有的说是两个动画时间不一致,有的说使用的顺序错误,有的说是,七嘴八舌。我也百思不得其解,因为有的奇怪的问题:我把动画的时间设置长一点,发现有的时候是从左到右的(后来查明是手机动画默认是从左往右),有的时候是从下往上弹出。看来这个方法使用是对的。但是很奇怪,为什么不能到预期效果呢?最后我想可能是耗时的问题。于是乎,我修改了使用方式。在需要跳转的地方
Message msg = new Message();
msg.what = 0;
handler.sendMessage(msg);
通过发消息的方式 去通知 通过handle去处理
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 0) {
type = 303;
Intent intent = new Intent(BaseActiveWebViewActivity.this, LoginActivity.class);
intent.putExtra(Constant.LOGINTO, Constant.ISFINISH);
startActivity(intent);
BaseActiveWebViewActivity.this. overridePendingTransition(R.anim.anim_bottom_to_top, R.anim.anim_no);
} else if (msg.what==1){
type = 301;
Intent intent = new Intent(BaseActiveWebViewActivity.this, LoginActivity.class);
intent.putExtra(Constant.LOGINTO, Constant.ISFINISH);
startActivity(intent);
BaseActiveWebViewActivity.this. overridePendingTransition(R.anim.anim_bottom_to_top, R.anim.anim_no);
}
else if (msg.what==2){
type = 401;
Intent intent = new Intent(BaseActiveWebViewActivity.this, LoginActivity.class);
intent.putExtra(Constant.LOGINTO, Constant.ISFINISH);
startActivity(intent);
overridePendingTransition(R.anim.anim_bottom_to_top, R.anim.anim_no);
}else {
webView.loadUrl(url);
}
}
};
效果也正常了。看来耗时操作还得在hander中使用。