LayoutTransition 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。
[Android.Runtime.Register("android/animation/LayoutTransition", DoNotGenerateAcw=true)]
public class LayoutTransition : Java.Lang.Object
[<Android.Runtime.Register("android/animation/LayoutTransition", DoNotGenerateAcw=true)>]
type LayoutTransition = class
inherit Object
- 繼承
- 屬性
備註
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 若要啟用配置容器的轉換,請呼叫 來建立 LayoutTransition 物件,並在任何 ViewGroup ViewGroup#setLayoutTransition(LayoutTransition)
上設定它。 這會導致每當專案新增至該容器或從該容器中移除時,就會執行預設動畫。 若要指定自訂動畫,請使用 LayoutTransition#setAnimator(int, Animator) setAnimator()
方法。
這些轉換動畫的核心概念之一是有兩種類型的變更會導致轉換,以及因為這些變更而執行四個不同的動畫。 觸發轉換的變更是將專案新增至容器 (稱為「顯示」轉換) 或從容器中移除 (也稱為「消失」) 。 在 GONE 與 VISIBLE) 之間設定檢視 (的可見度,將會觸發相同的新增/移除邏輯。 由於這些事件而執行的動畫是一個動畫專案正在新增、一個動畫顯示要移除的專案,另一個動畫顯示容器中的其他專案,而因新增/移除發生而變更的專案。 轉換的使用者可能會想要變更專案的不同動畫,視它們是否因為出現或消失事件而變更,因此變更事件的每個變化都有一個動畫。 此類別的大部分 API 都與設定這四種情況中使用的動畫基本屬性有關,或設定四個或全部的自訂動畫。
根據預設,DISAPPEARING 動畫會立即開始,就像CHANGE_APPEARING動畫一樣。 其他動畫會在延遲設定為動畫的預設持續時間之後開始。 此行為有助於轉換中的動畫序列,如下所示:當專案新增至版面配置時,該容器的其他子系會先移動 (因此為新專案建立空間) ,然後出現的動畫會執行 來建立所新增專案的動畫效果。 相反地,從容器中移除專案時,要移除的動畫會先執行,然後配置中其他子系的動畫將會執行 (關閉移除專案時,在配置中建立的間距) 。 如果不需要此預設編目行為, #setDuration(int, long)
則可以視需要變更任何或所有動畫的 和 #setStartDelay(int, long)
。 不過,請記住,如果您在完成 DISAPPEARING 動畫之前啟動 APPEARING 動畫,則 DISAPPEARING 動畫會停止,而且會還原來自 DISAPPEARING 動畫的任何效果。 如果您改為在 APPEARING 動畫完成之前啟動 DISAPPEARING 動畫,則會出現一組類似的效果。
針對轉換指定的動畫,在轉換物件上設定的預設值和任何自訂動畫,都是範本。 也就是說,這些動畫存在以保存基本動畫屬性,例如持續時間、開始延遲和動畫的屬性。 但是,實際的目標物件以及這些屬性的開始和結束值,會在每次執行時自動設定轉換。 每個動畫都會從原始複本複製,然後複製會填入要以動畫顯示之目標的動態值 (,例如配置容器中的其中一個專案,因為配置事件) 而移動,以及變更 (的值,例如該物件的位置和大小) 。 推送至每個動畫的實際值取決於動畫所指定的屬性。 例如,預設CHANGE_APPEARING動畫會 left
以動畫顯示 、 top
、 right
、 bottom
、 scrollX
和 scrollY
屬性。 這些屬性的值會在轉換開始時,使用預先和後置配置值來更新。 自訂動畫同樣會填入以動畫顯示的目標和值,假設它們使用 ObjectAnimator 物件搭配目標物件上已知的屬性名稱。
這個類別和容器的相關聯 XML 旗標 animateLayoutChanges=「true」,提供簡單的公用程式,用於在直接的情況下將變更自動化。 在巢狀檢視階層的多個層級使用 LayoutTransition 可能無法運作,因為各種版面配置層級的相互關聯。 此外,因為 LayoutTransition 計算的前置/之後位置可能不符合動畫執行時所捲動容器,因為隨著正在執行動畫而捲動容器完成時,正在捲動專案的容器可能不符合實際位置。 您可以藉由將CHANGE_APPEARING和CHANGE_DISAPPEARING動畫設定為 null,並適當地設定其他動畫的 startDelay,藉此解決該特定問題。
的 android.animation.LayoutTransition
JAVA 檔。
此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據中所述的詞彙使用。
建構函式
LayoutTransition() |
建構 LayoutTransition 物件。 |
LayoutTransition(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 標記法時所使用的建構函式;由執行時間呼叫。 |
欄位
Appearing |
已淘汰.
旗標,表示在容器中顯示的這些專案上執行的動畫。 |
ChangeAppearing |
已淘汰.
旗標,指出因為容器中出現新專案而變更的專案上執行的動畫。 |
ChangeDisappearing |
已淘汰.
旗標,指出因為專案從容器消失而變更的專案上執行的動畫。 |
Changing |
已淘汰.
旗標,指出因為配置變更而變更的這些專案上執行的動畫,不會因為專案新增至容器或從容器中移除而造成。 |
Disappearing |
已淘汰.
旗標,指出從容器消失的這些專案上執行的動畫。 |
屬性
Class |
傳回這個 |
Handle |
基礎 Android 實例的控制碼。 (繼承來源 Object) |
IsChangingLayout |
如果動畫正在執行以動畫顯示版面配置相關屬性,則會傳回 true。 |
IsRunning |
如果此轉換中的任何動畫目前正在執行,則傳回 true。 |
JniIdentityHashCode |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 (繼承來源 Object) |
JniPeerMembers |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 |
PeerReference |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 (繼承來源 Object) |
ThresholdClass |
此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式碼使用。 |
ThresholdType |
此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式碼使用。 |
TransitionListeners |
取得版面配置變更的目前接聽程式清單。 |
方法
AddChild(ViewGroup, View) |
當子檢視即將新增至容器時,ViewGroup 會呼叫這個方法。 |
AddTransitionListener(LayoutTransition+ITransitionListener) |
新增當檢視界限因版面配置處理而變更時所呼叫的接聽程式。 |
Clone() |
建立並傳回這個 物件的複本。 (繼承來源 Object) |
DisableTransitionType(LayoutTransitionType) |
停用這個 LayoutTransition 物件的指定 transitionType。 |
Dispose() |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 (繼承來源 Object) |
Dispose(Boolean) |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 (繼承來源 Object) |
EnableTransitionType(LayoutTransitionType) |
啟用這個 LayoutTransition 物件的指定 transitionType。 |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
GetAnimator(LayoutTransitionType) |
取得其中一個可能執行的轉換類型期間所使用的動畫。 |
GetDuration(LayoutTransitionType) |
取得這個轉換所使用的其中一個動畫物件的持續時間。 |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
GetInterpolator(LayoutTransitionType) |
取得這個轉換所使用的其中一個動畫物件上的插補器。 |
GetStagger(LayoutTransitionType) |
取得在其中一個變更動畫期間啟動每個動畫之間延遲的時間長度。 |
GetStartDelay(LayoutTransitionType) |
取得這個轉換所使用的其中一個動畫物件的開始延遲。 |
HideChild(ViewGroup, View) |
已淘汰.
已取代這個成員。 |
HideChild(ViewGroup, View, ViewStates) |
當子檢視即將隱藏在容器中時,ViewGroup 會呼叫這個方法。 |
IsTransitionTypeEnabled(LayoutTransitionType) |
傳回這個 LayoutTransition 物件是否已啟用指定的 transitionType。 |
JavaFinalize() |
當垃圾收集判斷物件沒有其他參考時,由物件上的垃圾收集行程呼叫。 (繼承來源 Object) |
Notify() |
喚醒正在等候此物件的監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
RemoveChild(ViewGroup, View) |
當子檢視即將從容器中移除時,ViewGroup 會呼叫這個方法。 |
RemoveTransitionListener(LayoutTransition+ITransitionListener) |
移除配置變更的接聽程式。 |
SetAnimateParentHierarchy(Boolean) |
此旗標可控制CHANGE_APPEARING或CHANGE_DISAPPEARING動畫是否也會在父階層上執行預設變更動畫。 |
SetAnimator(LayoutTransitionType, Animator) |
設定其中一種可能執行的轉換類型期間所使用的動畫。 |
SetDuration(Int64) |
設定這個轉換物件之所有動畫要使用的持續時間。 |
SetDuration(LayoutTransitionType, Int64) |
設定這個轉換所使用的其中一個動畫物件的持續時間。 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
SetInterpolator(LayoutTransitionType, ITimeInterpolator) |
在此轉換所使用的其中一個動畫物件上設定插補器。 |
SetStagger(LayoutTransitionType, Int64) |
設定在其中一個變更動畫期間啟動每個動畫之間的延遲時間長度。 |
SetStartDelay(LayoutTransitionType, Int64) |
設定這個轉換所使用的其中一個動畫物件的開始延遲。 |
ShowChild(ViewGroup, View) |
已淘汰.
已取代這個成員。 |
ShowChild(ViewGroup, View, ViewStates) |
當子檢視即將在容器中顯示時,ViewGroup 會呼叫這個方法。 |
ToArray<T>() |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 (繼承來源 Object) |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterFromRuntime() |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 (繼承來源 Object) |
Wait() |
讓目前的執行緒等到喚醒為止,通常是藉由 < em > notified < /em > 或 < em > interrupted < /em > 來喚醒。 (繼承來源 Object) |
Wait(Int64) |
讓目前的執行緒等到喚醒為止,通常是 < 透過 em > notified < /em 或 em > interrupted < /em >> ,或 < 直到經過一定數量的即時為止。 (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的執行緒等到喚醒為止,通常是 < 透過 em > notified < /em 或 em > interrupted < /em >> ,或 < 直到經過一定數量的即時為止。 (繼承來源 Object) |
事件
EndTransition |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 |
StartTransition |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 |
明確介面實作
IJavaPeerable.Disposed() |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 (繼承來源 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 (繼承來源 Object) |
IJavaPeerable.Finalized() |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 (繼承來源 Object) |
IJavaPeerable.JniManagedPeerState |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 (繼承來源 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 (繼承來源 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 (繼承來源 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 (繼承來源 Object) |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 |
GetJniTypeName(IJavaPeerable) |
這個類別會啟用 ViewGroup 物件中版面配置變更的自動動畫。 |