public abstract class SharedElementCallback
extends Object
java.lang.Object | |
↳ | android.app.SharedElementCallback |
Listener提供了setEnterSharedElementCallback(SharedElementCallback)
和setExitSharedElementCallback(SharedElementCallback)
以及setEnterSharedElementCallback(SharedElementCallback)
和setExitSharedElementCallback(SharedElementCallback)
来监视共享元素转换。 这些事件可以用来自定义Activity和Fragment Transition行为。
Nested classes |
|
---|---|
interface |
SharedElementCallback.OnSharedElementsReadyListener 当共享元素准备隐藏在源Activity中并显示在目标Activity中时,将在 |
Public constructors |
|
---|---|
SharedElementCallback() |
Inherited methods |
|
---|---|
From class java.lang.Object
|
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) . |
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. |
void onMapSharedElements (List<String> names, Map<String, View> 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. |
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. |
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. |
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. |
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. |