我剛剛開始使用Android,並按照本指南將向上導航添加到操作欄上的活動。Android:使用navigateUpFromSameTask()時發生錯誤轉換
http://developer.android.com/training/implementing-navigation/ancestral.html
然而,當我使用了按鈕操作欄過渡使它顯出打開一個新的活動,而不是淡出,它應該是,爲淡入過渡它在按下底部的後退按鈕時會執行。
我能做些什麼來使其顯示正確的轉換? 謝謝。
我剛剛開始使用Android,並按照本指南將向上導航添加到操作欄上的活動。Android:使用navigateUpFromSameTask()時發生錯誤轉換
http://developer.android.com/training/implementing-navigation/ancestral.html
然而,當我使用了按鈕操作欄過渡使它顯出打開一個新的活動,而不是淡出,它應該是,爲淡入過渡它在按下底部的後退按鈕時會執行。
我能做些什麼來使其顯示正確的轉換? 謝謝。
我改成finish();這似乎是做我想要的。
你可以使用的方法overridePendingTransition():startActivity(意向)或完成()的口味之一後,立即
呼叫指定一個明確的過渡動畫旁邊的執行。
http://developer.android.com/reference/android/app/Activity.html#overridePendingTransition(int,INT)
這不適用於NavUtils navigateUpFromSameTask()/ navigateUpTo() – SjoerdvGestel
檢查源代碼,它應該工作;-) http://grepcode.com/file/repo1.maven.org/ maven2/com.google.android/support-v4/r7/android/support/v4/app/NavUtils.java – Cliffus
聲明android:launchMode="singleTop"
您的Manifest.xml爲你的父母的活動中。
的過渡,然後將變爲默認淡出調用像時:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
(來源:http://developer.android.com/training/implementing-navigation/ancestral.html#NavigateUp)
當在父活動和當前活動之間存在自定義轉換時,包括共享元素,我可以得到它的唯一方法通過直接調用'finishAfterTransition'來反轉該轉換。即使我在當前活動中覆蓋'finish'來調用'finishAfterTransition',也不會調用'NavUtils'方法。有誰知道爲什麼?我即將搜索/發佈有關此主題的自己的問題。 – user3175580
您應該使用navigateUpTo()方法,並設置標誌沒有動畫的意圖,像這樣:
final Intent intent = NavUtils.getParentActivityIntent(this);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
NavUtils.navigateUpTo(this, intent);
你會有'很好'的後退動畫,並正確使用向上按鈕。 this
是當前活動。
@ Ciprian的解決方案適用於我。
此外,navigateUpFromSameTask()
僅僅是一個方便的方法等效於調用:
final Intent intent = NavUtils.getParentActivityIntent(this);
NavUtils.navigateUpTo(this, intent);
當您添加Intent.FLAG_ACTIVITY_NO_ANIMATION
旗,defaut活動淡出TRANSATION生效。
我掙扎了很多關於這個同樣的問題,並設法如下解決了這個問題:
case android.R.id.home:
onBackPressed();
return true;
每當你按下後退按鈕onBackPressed()
叫過。按下操作欄後退按鈕時調用它只會做同樣的事情。
它可能會讓我感到困惑。然而,我的解決方案是簡單地將android:launchMode="singleTop"
添加到全部的父母,不管父母是否有另一個父母。
希望它能幫助:)
是的,但這是不正確的,在這裏看看這個演示,爲什麼不建議這樣做:https://speakerdeck.com/jgilfelt/this-way-up-implementing -effective-navigation-on-android – Ciprian