語言

LayoutTransition 類別

定義

此類別能自動對 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
繼承
LayoutTransition
屬性

備註

此類別能自動對 ViewGroup 物件的版面變更進行動畫。 要啟用版面容器的轉換,請建立一個 LayoutTransition 物件,並透過呼叫 ViewGroup#setLayoutTransition(LayoutTransition)。 這會導致每當物品被加入或移除該容器時,預設動畫就會播放。 要指定自訂動畫,請使用這個 LayoutTransition#setAnimator(int, Animator) setAnimator() 方法。

這些過場動畫的核心概念之一是,有兩種不同的變化會導致轉換,以及因這些變化而運行的四種不同動畫。 觸發轉換的變更包括將項目加入容器(稱為「出現」轉換)或從容器中移除(也稱為「消失」轉換)。 設定視圖的可見性(介於 GONE 和 VISIBLE 之間)會觸發相同的新增/移除邏輯。 因為這些事件而執行的動畫有:一個是顯示新增物品的動畫,一個是移除物品的動畫,還有兩個是因為新增/移除事件而改變容器中其他物品的動畫。 使用者可能會希望物品變化時有不同的動畫,因為是因為事件出現或消失而改變,因此每種變化事件都有一個動畫。 本類別的大部分 API 都著重於設定這四種情況下所用動畫的基本屬性,或是為其中任一或全部設定自訂動畫。

預設情況下,消失動畫會立即開始,CHANGE_APPEARING動畫也是如此。 其他動畫則在設定為動畫預設時長的延遲後開始。 此行為促進了以下動畫的轉場:當物品被加入版面時,該容器的其他子節點會先移動(因此為新物品創造空間),接著出現動畫執行以動畫來動畫該物品。 相反地,當物品從容器中移除時,先執行移除該物品的動畫,接著是佈局中其他子節點的動畫(填補物品移除時造成的空隙)。 如果不希望採用預設的編舞行為, #setDuration(int, long) 任何或全部動畫的 and #setStartDelay(int, long) 都可以依情況調整。 不過要注意,如果你在消失動畫還沒完成前就開始出現動畫,消失動畫就會停止,消失動畫的效果也會被還原。 如果你在出現動畫完成前就開始了消失動畫,則出現動畫也會有類似的效果。

轉場指定的動畫,無論是預設動畫還是轉換物件上設定的任何自訂動畫,都僅為範本。 也就是說,這些動畫存在是為了保留基本的動畫屬性,例如時長、開始延遲以及正在動畫化的屬性。 但實際的目標物件,以及這些屬性的起始和結束值,都是在每次執行轉換設定過程中自動設定的。 每個動畫都是從原始複製複製而來,然後複製目標的動態值(例如因佈局事件而移動的配置容器中的某個物件)以及變化的值(例如該物件的位置和大小)。 每個動畫實際推送的值取決於動畫中指定的屬性。 例如,預設的CHANGE_APPEARING動畫會讓 left、 top、 rightbottom、 和 scrollXscrollY屬性都做動畫。 這些屬性的值會在轉換開始時更新為佈局前後的值。 自訂動畫也會同樣填入目標和被動畫的值,前提是它們使用的物件名稱是目標物件已知的。

此類別及容器相關的 XML 標誌 animateLayoutChanges =“true”,提供了一個簡單的工具,旨在在簡單情況下自動進行變更。 在巢狀視圖階層的多個層級使用 LayoutTransition 可能無法運作,因為各層級的佈局相互關聯。 此外,若容器在新增或移除物品時同時捲動,可能不適合使用此工具,因為 LayoutTransition 計算的前後位置可能與動畫結束時的實際位置不符,因為容器在動畫進行時被捲動。 你可以透過將CHANGE_APPEARING和CHANGE_DISAPPEARING動畫設為空,並適當設定其他動畫的 startDelay,來解決這個問題。

Java 文件 android.animation.LayoutTransition。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
LayoutTransition()

建構一個 LayoutTransition 物件。

LayoutTransition(IntPtr, JniHandleOwnership)

用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。

欄位

名稱 Description
Appearing
已淘汰.

一個標示顯示容器中出現物品的動畫。

ChangeAppearing
已淘汰.

一個標示,表示因容器中出現新物品而改變的物品上運行的動畫。

ChangeDisappearing
已淘汰.

一個旗標,表示因物品從容器中消失而改變的物品所執行的動畫。

Changing
已淘汰.

一個標示因配置變更而變動的物品所執行的動畫,這些物品並非因物品被加入或移除容器而改變。

Disappearing
已淘汰.

一個標示在那些從容器中消失的物品上運行的動畫旗標。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
IsChangingLayout

如果正在執行動畫,則會回傳真值,動畫會讓與版面相關的屬性產生動畫。

IsRunning

如果此轉換中的任何動畫正在執行,則會回傳為真。

JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

(繼承來源 JavaObject)
JniPeerMembers

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

TransitionListeners

取得目前版面變更的監聽者清單。

方法

名稱 Description
AddChild(ViewGroup, View)

當子視圖即將加入容器時,ViewGroup 會呼叫此方法。

AddTransitionListener(LayoutTransition+ITransitionListener)

新增一個監聽器,當視圖範圍因版面處理而改變時會被呼叫。

Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

(繼承來源 JavaObject)
DisableTransitionType(LayoutTransitionType)

禁用此 LayoutTransition 物件指定的 transitionType。

Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

(繼承來源 JavaObject)
EnableTransitionType(LayoutTransitionType)

啟用此 LayoutTransition 物件指定的 transitionType。

Equals(Object)

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
GetAnimator(LayoutTransitionType)

取得在可能執行的過渡類型中使用的動畫。

GetDuration(LayoutTransitionType)

讀取此轉換所用動畫物件的持續時間。

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
GetInterpolator(LayoutTransitionType)

取得這個轉場所用動畫物件的插值器。

GetStagger(LayoutTransitionType)

它會顯示在其中一個變換動畫中,每個動畫開始之間的延遲時間。

GetStartDelay(LayoutTransitionType)

取得這個轉場所用動畫物件的起始延遲。

HideChild(ViewGroup, View, ViewStates)

當子視圖即將被隱藏在容器中時,ViewGroup 會呼叫此方法。

HideChild(ViewGroup, View)
已淘汰.

此會員已被棄用。

IsTransitionTypeEnabled(LayoutTransitionType)

回傳是否啟用指定 transitionType,該物件為 LayoutTransition 物件。

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)

將插值器設定在這個轉換所用的動畫物件之一上。

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

(繼承來源 JavaObject)
SetStagger(LayoutTransitionType, Int64)

設定在其中一個變換動畫中,每個動畫開始之間的延遲時間。

SetStartDelay(LayoutTransitionType, Int64)

設定此轉換所用動畫物件的起始延遲。

ShowChild(ViewGroup, View, ViewStates)

當子視圖即將在容器中顯示時,ViewGroup 會呼叫此方法。

ShowChild(ViewGroup, View)
已淘汰.

此會員已被棄用。

ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

事件

名稱 Description
EndTransition

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

StartTransition

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

(繼承來源 JavaObject)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

此類別能自動對 ViewGroup 物件的版面變更進行動畫。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於