Most visited

Recently visited

Added in API level 21

SharedElementCallback

public abstract class SharedElementCallback
extends Object

java.lang.Object
   ↳ android.app.SharedElementCallback


Listener提供了setEnterSharedElementCallback(SharedElementCallback)setExitSharedElementCallback(SharedElementCallback)以及setEnterSharedElementCallback(SharedElementCallback)setExitSharedElementCallback(SharedElementCallback)来监视共享元素转换。 这些事件可以用来自定义Activity和Fragment Transition行为。

Summary

Nested classes

interface SharedElementCallback.OnSharedElementsReadyListener

当共享元素准备隐藏在源Activity中并显示在目标Activity中时,将在onSharedElementsArrived(List, List, OnSharedElementsReadyListener)之后调用侦听器。

Public constructors

SharedElementCallback()

Public methods

Parcelable onCaptureSharedElementSnapshot(View sharedElement, Matrix viewToGlobalMatrix, RectF screenBounds)

创建远程“活动”使用的共享元素的快照,并使用 onCreateSnapshotView(android.content.Context, android.os.Parcelable)重新 onCreateSnapshotView(android.content.Context, android.os.Parcelable)

View onCreateSnapshotView(Context context, Parcelable snapshot)

重建 onCaptureSharedElementSnapshot(android.view.View, android.graphics.Matrix, android.graphics.RectF)返回的 onCaptureSharedElementSnapshot(android.view.View, android.graphics.Matrix, android.graphics.RectF)的快照视图,以用于 onSharedElementStart(java.util.List, java.util.List, java.util.List)onSharedElementEnd(java.util.List, java.util.List, java.util.List)

void onMapSharedElements(List<String> names, Map<StringView> sharedElements)

让SharedElementCallback调整共享元素名称到Views的映射。

void onRejectSharedElements(List<View> rejectedSharedElements)

在传输共享元素时调用 onMapSharedElements(java.util.List, java.util.Map)后调用。

void onSharedElementEnd(List<String> sharedElementNames, List<View> sharedElements, List<View> sharedElementSnapshots)

在活动转换中,onSharedElementEnd在捕获进入和重新输入转换时的共享元素状态结束之前立即被调用,并在捕获用于退出和返回转换的共享元素状态的开始之前立即调用onSharedElementEnd。

void onSharedElementStart(List<String> sharedElementNames, List<View> sharedElements, List<View> sharedElementSnapshots)

在活动转换中,onSharedElementStart在捕获进入和重新输入转换时的共享元素状态开始之前立即被调用,并且在捕获共享元素状态的结束以用于退出和返回转换之前立即调用onSharedElementStart。

void onSharedElementsArrived(List<String> sharedElementNames, List<View> sharedElements, SharedElementCallback.OnSharedElementsReadyListener listener)

在活动转换期间调用时,共享元素已到达最终位置并准备好转移。

Inherited methods

From class java.lang.Object

Public constructors

SharedElementCallback

Added in API level 21
SharedElementCallback ()

Public methods

onCaptureSharedElementSnapshot

Added in API level 21
Parcelable onCaptureSharedElementSnapshot (View sharedElement, 
                Matrix viewToGlobalMatrix, 
                RectF screenBounds)

创建远程“活动”使用的共享元素的快照,并使用onCreateSnapshotView(android.content.Context, android.os.Parcelable)重新onCreateSnapshotView(android.content.Context, android.os.Parcelable) 空返回值将意味着远程活动在onSharedElementStart(java.util.List, java.util.List, java.util.List)onSharedElementEnd(java.util.List, java.util.List, java.util.List)中将具有空快照View。

这不是所谓的片段转换。

Parameters
sharedElement View: The shared element View to create a snapshot for.
viewToGlobalMatrix Matrix: A matrix containing a transform from the view to the screen coordinates.
screenBounds RectF: The bounds of shared element in screen coordinate space. This is the bounds of the view with the viewToGlobalMatrix applied.
Returns
Parcelable A snapshot to send to the remote Activity to be reconstituted with onCreateSnapshotView(android.content.Context, android.os.Parcelable) and passed into onSharedElementStart(java.util.List, java.util.List, java.util.List) and onSharedElementEnd(java.util.List, java.util.List, java.util.List).

onCreateSnapshotView

Added in API level 21
View onCreateSnapshotView (Context context, 
                Parcelable snapshot)

onCaptureSharedElementSnapshot(android.view.View, android.graphics.Matrix, android.graphics.RectF)onSharedElementStart(java.util.List, java.util.List, java.util.List)onSharedElementEnd(java.util.List, java.util.List, java.util.List)使用的onSharedElementStart(java.util.List, java.util.List, java.util.List)的快照View。 返回的视图将在调用后调整大小并定位,以便可以将其添加到装饰视图的叠加层。

这不是所谓的片段转换。

Parameters
context Context: The Context used to create the snapshot View.
snapshot Parcelable: The Parcelable returned by onCaptureSharedElementSnapshot(android.view.View, android.graphics.Matrix, android.graphics.RectF).
Returns
View A View to be sent in onSharedElementStart(java.util.List, java.util.List, java.util.List) and onSharedElementEnd(java.util.List, java.util.List, java.util.List). A null value will produce a null snapshot value for those two methods.

onMapSharedElements

Added in API level 21
void onMapSharedElements (List<String> names, 
                Map<StringView> sharedElements)

让SharedElementCallback调整共享元素名称到Views的映射。

Parameters
names List: The names of all shared elements transferred from the calling Activity or Fragment in the order they were provided.
sharedElements Map: The mapping of shared element names to Views. The best guess will be filled into sharedElements based on the transitionNames.

onRejectSharedElements

Added in API level 21
void onRejectSharedElements (List<View> rejectedSharedElements)

在传递共享元素时调用onMapSharedElements(java.util.List, java.util.Map)之后。任何没有映射的共享元素都将位于rejectedSharedElements中 保留在rejectedSharedElements中的元素将转换出场景。 如果视图从rejectedSharedElements中删除,它必须由SharedElementCallback处理。

rejectedSharedElements中的视图将其位置和大小设置为调用共享元素相对于Window装饰视图的位置,并包含来自调用Activity或Fragment的View的快照。 此视图可以安全地添加到装饰视图的覆盖图中以保持原位。

该方法不被称为片段转换。 所有被拒绝的共享元素将由退出过渡处理。

Parameters
rejectedSharedElements List: Views containing visual information of shared elements that are not part of the entering scene. These Views are positioned relative to the Window decor View. A View removed from this list will not be transitioned automatically.

onSharedElementEnd

Added in API level 21
void onSharedElementEnd (List<String> sharedElementNames, 
                List<View> sharedElements, 
                List<View> sharedElementSnapshots)

在活动转换中,onSharedElementEnd在捕获进入和重新输入转换时的共享元素状态结束之前立即被调用,并在捕获用于退出和返回转换的共享元素状态的开始之前立即调用onSharedElementEnd。

在片段转换中,在捕获所有共享元素转换的结束状态之前立即调用onSharedElementEnd。

此调用可用于通过修改共享元素Views来调整转换结束状态。 请注意,onSharedElementEnd和转换状态捕获之间不会执行布局步骤。

在布局过程中未更新的onSharedElementStart(List, List, List)中所做的任何更改都应在onSharedElementEnd中进行更正。 例如,旋转或缩放不会受布局影响,如果在onSharedElementStart(List, List, List)更改,它也必须在onSharedElementEnd中重新设置以更正结束状态。

Parameters
sharedElementNames List: The names of the shared elements that were accepted into the View hierarchy.
sharedElements List: The shared elements that are part of the View hierarchy.
sharedElementSnapshots List: The Views containing snap shots of the shared element from the launching Window. These elements will not be part of the scene, but will be positioned relative to the Window decor View. This list will be null for Fragment Transitions.

onSharedElementStart

Added in API level 21
void onSharedElementStart (List<String> sharedElementNames, 
                List<View> sharedElements, 
                List<View> sharedElementSnapshots)

在活动转换中,onSharedElementStart在捕获进入和重新输入转换时的共享元素状态开始之前立即被调用,并且在捕获共享元素状态的结束以用于退出和返回转换之前立即调用onSharedElementStart。

在片段转换中,在捕获所有共享元素转换的开始状态之前立即调用onSharedElementStart。

此调用可用于通过修改共享元素Views来调整转换开始状态。 请注意,onSharedElementStart和转换状态捕获之间不会执行布局步骤。

对于活动转换,在onSharedElementEnd(List, List, List)中进行的任何未根据布局更新的更改都应在onSharedElementStart中针对退出和返回转换进行更正。 例如,旋转或缩放不会受布局影响,如果在onSharedElementEnd(List, List, List)更改,它也必须再次在onSharedElementStart中重置以更正结束状态。

Parameters
sharedElementNames List: The names of the shared elements that were accepted into the View hierarchy.
sharedElements List: The shared elements that are part of the View hierarchy.
sharedElementSnapshots List: The Views containing snap shots of the shared element from the launching Window. These elements will not be part of the scene, but will be positioned relative to the Window decor View. This list is null for Fragment Transitions.

onSharedElementsArrived

Added in API level 23
void onSharedElementsArrived (List<String> sharedElementNames, 
                List<View> sharedElements, 
                SharedElementCallback.OnSharedElementsReadyListener listener)

在活动转换期间调用时,共享元素已到达最终位置并准备好转移。 源和目标活动均调用此方法。

当共享元素准备好传输时,必须调用 onSharedElementsReady()来触发传输。

默认行为是立即触发传输。

Parameters
sharedElementNames List: The names of the shared elements that are being transferred..
sharedElements List: The shared elements that are part of the View hierarchy.
listener SharedElementCallback.OnSharedElementsReadyListener: The listener to call when the shared elements are ready to be hidden in the source Activity or shown in the destination Activity.

Hooray!