0

我最近切換到只有一個活動(感謝迫擊炮&流),然後我切換全屏視圖,而不是使用下面的代碼開始新的活動。活動與視圖有什麼不同?

setAnimation(direction, oldChild, newChild); 

    // Out with the old, in with the new. 
    if (oldChild != null) container.removeView(oldChild); 
    container.addView(newChild); 
} 

protected void setAnimation(Flow.Direction direction, View oldChild, View newChild) { 
    if (oldChild == null) return; 

    int out = direction == Flow.Direction.FORWARD ? R.anim.slide_out_to_left : R.anim.slide_out_to_right; 
    int in = direction == Flow.Direction.FORWARD ? R.anim.slide_in_from_right : R.anim.slide_in_from_left; 

    oldChild.setAnimation(loadAnimation(context, out)); 
    newChild.setAnimation(loadAnimation(context, in)); 
} 

這種轉變正是我如何使用

activity.startActivity(); 
    activity.overridePendingTransition(R.anim.slide_in_from_right, R.anim.nudge_out_to_left); 

要我活動之間的過渡都認爲和活動的轉變應該呈現相同的,但我所看到的是,有一些額外的事情在活動轉型中。也有一些淡出。

任何人都知道我能如何獲得視圖過渡到看起來與2個活動過渡相同?我很想完全轉向不需要一個以上的活動,但不願意失去活動轉換的平滑性的方法

回答

0

您可以在兩個活動而不是一個活動中分離您的代碼。如果您僅在活動中共享某些靜態視圖(文本,圖像...),但在第二個活動中執行更多操作,則這非常有用。 有時候,如果使用片段而不是一個視圖或兩個活動,這是一個很好的解決方案。

請閱讀有關片段的文檔,尤其是共享元素的片段轉換。這是非常容易處理和保持你的代碼清潔。

+0

我試圖擺脫碎片的原因如下所述:http://corner.squareup.com/2014/10/advocating-against-android-fragments.html。我更關心的是android如何轉換活動,以及如果在傳入的過渡動畫之外還有其他事情發生, – FriendlyMikhail

+0

你對外界意味着什麼? – Mann

+0

我將視圖創建動畫設置爲與以下活動開始動畫相同 但是,當我查看過渡時,即使我沒有做任何事情來創建過渡效果,活動似乎也會淡化舊活動。 – FriendlyMikhail

0

在代碼示例中使用了兩個不同的表達式。有一次是nudge_out,另一次是slide_out。 我不知道它是否意外。 也許全球都在淡出這些活動?!

+0

你有檢查嗎? – Mann

相關問題