android基礎--overridePendingTransition動畫效果無效解決
看了網上很多碰到過此類問題,每個人遇到問題都不同,大致歸類如下部分:
必需緊挨startActivity()或者finish()函數之後調用僅僅android2.0以及以上版本上適用
1. 首先真機上有沒有開啓動畫效果,這個原因很少出現.
打開即可 設置->顯示->顯示動畫效果
2. 在ActivityGroup等的嵌入式Activity中導致
this.getParent().overridePendingTransition(R.anim.in_from_right, android.R.anim.fade_out)
不妨可以添加this.getParent()方法試試。
3. startactivity , overridePendingTransition 需要在主線程中調用纔會有效果.
如果是在子線程中調用將會沒有效果
4.看到有筆友提示:動畫時間相同設置,即
R.anim.activity_anim_fall, 與 R.anim.activity_anim_none兩者設置的時間必須要相等,不然會無效,如果第一個時間慢,第二個快,就會出現第二個界面黑屏,第一個開始動畫效果,那是因爲第二個已經在時間內完成了動畫,切記。
這種應該很少出現吧,
5.一個Activity的內部類中,或者匿名類中,利用Thread結合Handler方式
Message msg = new Message();
msg.what = 0;
mHandler.sendMessage(msg);
發送跳轉消息, 然後在handler中跳轉
mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(msg.what ==0){
Intent intent = new Intent(A.this,B.CLASS);
startActivity(intent);
overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
finish();
}
}
};
6.有筆友提示 onPause()中使用跳轉方法
protected void onPause() {
super.onPause();
overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
}
<span style="font-family:SimSun;"> @Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.rlUpdate:
Intent intent = new Intent(v.getContext(), NeedUpdateActivity.class);
startActivity(intent);
//overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);
break;
}
}
</span>
這種我倒是沒有遇到過,大家可以試試這種做法.
7. TabHost中的Activity調用overridePendingTransition()方法無效
大家可以看下這裏:http://my.oschina.net/xsjayz/blog/100150
希望以上彙集對大家有幫助...