Most visited

Recently visited

Added in API level 19

Visibility

public abstract class Visibility
extends Transition

java.lang.Object
   ↳ android.transition.Transition
     ↳ android.transition.Visibility
Known Direct Subclasses


此转换跟踪对开始和结束场景中目标视图的可见性的更改。 可见性不仅由setVisibility(int)视图状态决定,而且由当前视图层次结构中是否存在视图决定。 该类旨在成为诸如Fade等子类的实用程序,它们使用此可见性信息来确定发生可见性更改时要运行的特定动画。 子类应该实现的方法之一或两者onAppear(ViewGroup, TransitionValues, int, TransitionValues, int)onDisappear(ViewGroup, TransitionValues, int, TransitionValues, int)或者onAppear(ViewGroup, View, TransitionValues, TransitionValues)onDisappear(ViewGroup, View, TransitionValues, TransitionValues)

Summary

XML attributes

android:transitionVisibilityMode Changes whether the transition supports appearing and/or disappearing Views. 

Inherited XML attributes

From class android.transition.Transition

Constants

int MODE_IN

setMode(int)使用的模式使转换对出现的目标进行操作。

int MODE_OUT

setMode(int)使用的模式使转换对正在消失的目标进行操作。

Inherited constants

From class android.transition.Transition

Public constructors

Visibility()
Visibility(Context context, AttributeSet attrs)

Public methods

void captureEndValues(TransitionValues transitionValues)

在结束场景中捕获此转换监视的属性的值。

void captureStartValues(TransitionValues transitionValues)

捕获此转场监视的属性在开始场景中的值。

Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues)

此方法创建一个动画,该动画将为此转换运行,因为前面为start和end场景捕获的startValues和endValues结构中的信息。

int getMode()

返回是否支持显示和/或消失视图。

String[] getTransitionProperties()

返回传递到 captureStartValues(TransitionValues)中的 TransitionValues对象中存储的属性名称 captureStartValues(TransitionValues) ,此对象用于取消重叠动画。

boolean isTransitionRequired(TransitionValues startValues, TransitionValues newValues)

根据 captureStartValues(TransitionValues)captureEndValues(TransitionValues)期间捕获的值,返回过渡是否应创建Animator。

boolean isVisible(TransitionValues values)

根据给定的值对象返回视图是否“可见”。

Animator onAppear(ViewGroup sceneRoot, View view, TransitionValues startValues, TransitionValues endValues)

此方法的默认实现将返回空Animator。

Animator onAppear(ViewGroup sceneRoot, TransitionValues startValues, int startVisibility, TransitionValues endValues, int endVisibility)

此方法的默认实现调用 onAppear(ViewGroup, View, TransitionValues, TransitionValues)

Animator onDisappear(ViewGroup sceneRoot, View view, TransitionValues startValues, TransitionValues endValues)

此方法的默认实现将返回空Animator。

Animator onDisappear(ViewGroup sceneRoot, TransitionValues startValues, int startVisibility, TransitionValues endValues, int endVisibility)

如果目标消失时需要创建动画师,则子类应该重写此方法或 onDisappear(ViewGroup, View, TransitionValues, TransitionValues)

void setMode(int mode)

根据 mode更改转换以支持出现和/或消失视图。

Inherited methods

From class android.transition.Transition
From class java.lang.Object

XML attributes

android:transitionVisibilityMode

更改过渡是否支持出现和/或消失的视图。 对应于setMode(int)

必须是以下常量值中的一个或多个(用'|'分隔)。

Constant Value 描述
mode_in 1 Only appearing Views will be supported.
mode_out 2 Only disappearing Views will be supported.

这对应于全局属性资源符号 transitionVisibilityMode

相关方法:

Constants

MODE_IN

Added in API level 21
int MODE_IN

setMode(int)使用的模式使转换对出现的目标进行操作。 也许可以与MODE_OUT结合,以将可见性更改作为目标。

常数值:1(0x00000001)

MODE_OUT

Added in API level 21
int MODE_OUT

setMode(int)使用的模式使转换对正在消失的目标进行操作。 也许可以与MODE_IN结合以将可见性更改为进出。

常量值:2(0x00000002)

Public constructors

Visibility

Added in API level 19
Visibility ()

Visibility

Added in API level 21
Visibility (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

Public methods

captureEndValues

Added in API level 19
void captureEndValues (TransitionValues transitionValues)

在结束场景中捕获此转换监视的属性的值。 这些值随后将作为endValues结构传递给createAnimator(ViewGroup, TransitionValues, TransitionValues) 实施的主要关注点是过渡期关注的属性以及所有这些属性的价值。 开始和结束值将在createAnimator(android.view.ViewGroup, TransitionValues, TransitionValues)方法后期进行比较,以确定应该运行哪些动画(如果有的话)。

子类必须实现此方法。 该方法只能由过渡系统调用; 它不打算从外部类中调用。

Parameters
transitionValues TransitionValues: The holder for any values that the Transition wishes to store. Values are stored in the values field of this TransitionValues object and are keyed from a String value. For example, to store a view's rotation value, a transition might call transitionValues.values.put("appname:transitionname:rotation", view.getRotation()). The target view will already be stored in the transitionValues structure when this method is called.

captureStartValues

Added in API level 19
void captureStartValues (TransitionValues transitionValues)

捕获此转场监视的属性在开始场景中的值。 这些值然后在以后调用createAnimator(ViewGroup, TransitionValues, TransitionValues)作为startValues结构createAnimator(ViewGroup, TransitionValues, TransitionValues) 实施的主要关注点是过渡期关注的属性以及所有这些属性的价值。 开始和结束值将在createAnimator(android.view.ViewGroup, TransitionValues, TransitionValues)方法后期进行比较,以确定应该运行哪些动画(如果有的话)。

子类必须实现此方法。 该方法只能由过渡系统调用; 它不打算从外部类中调用。

Parameters
transitionValues TransitionValues: The holder for any values that the Transition wishes to store. Values are stored in the values field of this TransitionValues object and are keyed from a String value. For example, to store a view's rotation value, a transition might call transitionValues.values.put("appname:transitionname:rotation", view.getRotation()). The target view will already be stored in the transitionValues structure when this method is called.

createAnimator

Added in API level 19
Animator createAnimator (ViewGroup sceneRoot, 
                TransitionValues startValues, 
                TransitionValues endValues)

此方法创建一个动画,该动画将为此转换运行,因为前面为start和end场景捕获的startValues和endValues结构中的信息。 Transition的子类应该覆盖此方法。 该方法只能由过渡系统调用; 它不打算从外部类中调用。

该方法由transition的父级(一直到层次结构中最高级的Transition)调用,并使用sceneRoot和start / end值进行调用,以便转换可能需要设置初始目标值并构建适当的动画。 例如,如果总体Transition是由几个子级转换组成的TransitionSet ,则一些子级转换可能希望在整个Transition转换开始之前在目标视图上设置初始值,以使其处于延迟的适当状态在开始和孩子之间的过渡开始时间。 例如,淡入一个项目的转换可能希望将开始的alpha值设置为0,以避免在实际开始动画之前的转换之前其闪烁。 这是必要的,因为触发Transition的场景变化将自动设置所有目标视图上的结束场景,因此想要从不同值开始动画的Transition应该在从此方法返回之前设置该值。

另外,Transition可以执行逻辑来确定是否需要在给定目标上运行转换以及开始/结束值。 例如,调整屏幕上对象大小的过渡可能希望避免在开始场景或结束场景中不存在的视图运行。

如果有一个动画创建并从这个方法返回,转换机制会将任何适用的持续时间,startDelay和插补器应用到该动画并启动它。 返回值null表示不应该运行动画。 默认实现返回null。

该方法针对每个可应用的目标对象进行调用,该对象存储在 view字段中。

Parameters
sceneRoot ViewGroup: The root of the transition hierarchy.
startValues TransitionValues: The values for a specific target in the start scene.
endValues TransitionValues: The values for the target in the end scene.
Returns
Animator A Animator to be started at the appropriate time in the overall transition for this scene change. A null value means no animation should be run.

getMode

Added in API level 21
int getMode ()

返回是否支持显示和/或消失视图。 返回是否支持显示和/或消失视图。 MODE_INMODE_OUT组合。

相关XML属性:

Returns
int

getTransitionProperties

Added in API level 19
String[] getTransitionProperties ()

返回存储在TransitionValues对象中的属性名称集,该对象传递给captureStartValues(TransitionValues) ,该过渡关注的目的是为了取消重叠的动画。 当在给定场景根上开始任何转场时,将检查当前在同一场景根上运行的所有转场,以查看它们基于其动画的属性是否与新转场中相同属性的最终值一致。 如果最终值不相等,则旧的动画将被取消,因为新的转换将为这些新值开始新的动画。 如果值相等,则允许旧动画继续,并且不会为该转换启动新的动画。

过渡不需要重写此方法。 但是,如果不这样做,则意味着上一段中所述的取消逻辑将跳过该转换,可能会导致人为因素,因为旧转换和同一目标上的新转换并行运行,将视图动画化为可能不同的最终值。

Returns
String[] An array of property names as described in the class documentation for TransitionValues. The default implementation returns null.

isTransitionRequired

Added in API level 23
boolean isTransitionRequired (TransitionValues startValues, 
                TransitionValues newValues)

根据captureStartValues(TransitionValues)captureEndValues(TransitionValues)期间捕获的值,返回过渡是否应创建Animator。 默认实现比较从getTransitionProperties()返回的属性值,或者如果getTransitionProperties()返回null,则返回所有属性值。 子类可以重写此方法来为转换实现提供更具体的逻辑。

Parameters
startValues TransitionValues: the values from captureStartValues, This may be null if the View did not exist in the start state.
newValues TransitionValues: the values from captureEndValues. This may be null if the View did not exist in the end state.
Returns
boolean

isVisible

Added in API level 19
boolean isVisible (TransitionValues values)

根据给定的值对象返回视图是否“可见”。 这是通过测试值对象中相同的属性来确定的,这些属性用于确定对象是否在createAnimator(ViewGroup, TransitionValues, TransitionValues)方法中出现或消失。 例如,可以通过想要知道对象是否可见的子类来调用此方法,方法与Visibility为实际动画确定相同。

Parameters
values TransitionValues: The TransitionValues object that holds the information by which visibility is determined.
Returns
boolean True if the view reference by values is visible, false otherwise.

onAppear

Added in API level 21
Animator onAppear (ViewGroup sceneRoot, 
                View view, 
                TransitionValues startValues, 
                TransitionValues endValues)

此方法的默认实现将返回空Animator。 子类应该重写此方法以使目标显示所需的转换。 该方法只能从onAppear(ViewGroup, TransitionValues, int, TransitionValues, int)

Parameters
sceneRoot ViewGroup: The root of the transition hierarchy
view View: The View to make appear. This will be in the target scene's View hierarchy and will be VISIBLE.
startValues TransitionValues: The target values in the start scene
endValues TransitionValues: The target values in the end scene
Returns
Animator An Animator to be started at the appropriate time in the overall transition for this scene change. A null value means no animation should be run.

onAppear

Added in API level 19
Animator onAppear (ViewGroup sceneRoot, 
                TransitionValues startValues, 
                int startVisibility, 
                TransitionValues endValues, 
                int endVisibility)

此方法的默认实现调用onAppear(ViewGroup, View, TransitionValues, TransitionValues) 子类应该覆盖此方法或onAppear(ViewGroup, View, TransitionValues, TransitionValues) 如果他们需要在目标出现时创建Animator。 该方法只能由Visibility类调用; 它不打算从外部类中调用。

Parameters
sceneRoot ViewGroup: The root of the transition hierarchy
startValues TransitionValues: The target values in the start scene
startVisibility int: The target visibility in the start scene
endValues TransitionValues: The target values in the end scene
endVisibility int: The target visibility in the end scene
Returns
Animator An Animator to be started at the appropriate time in the overall transition for this scene change. A null value means no animation should be run.

onDisappear

Added in API level 21
Animator onDisappear (ViewGroup sceneRoot, 
                View view, 
                TransitionValues startValues, 
                TransitionValues endValues)

此方法的默认实现将返回空Animator。 子类应该重写此方法,使目标消失与所需的转换。 该方法只能从onDisappear(ViewGroup, TransitionValues, int, TransitionValues, int)

Parameters
sceneRoot ViewGroup: The root of the transition hierarchy
view View: The View to make disappear. This will be in the target scene's View hierarchy or in an ViewGroupOverlay and will be VISIBLE.
startValues TransitionValues: The target values in the start scene
endValues TransitionValues: The target values in the end scene
Returns
Animator An Animator to be started at the appropriate time in the overall transition for this scene change. A null value means no animation should be run.

onDisappear

Added in API level 19
Animator onDisappear (ViewGroup sceneRoot, 
                TransitionValues startValues, 
                int startVisibility, 
                TransitionValues endValues, 
                int endVisibility)

如果目标消失时需要创建Animator,则子类应该重写此方法或onDisappear(ViewGroup, View, TransitionValues, TransitionValues) 该方法只能由Visibility类调用; 它不打算从外部类中调用。

此方法的默认实现尝试根据View层次结构中View的情况尝试查找用于调用onDisappear(ViewGroup, View, TransitionValues, TransitionValues)的View。 例如,如果简单地将View从其父项中删除,则视图将被添加到ViewGroupOverlay ,并作为view中的view参数onDisappear(ViewGroup, View, TransitionValues, TransitionValues) 如果可见视图更改为GONEINVISIBLE ,则可以将其用作view并且在动画期间可见性将更改为VISIBLE 但是,如果某个视图处于也正在改变其可见性的层次结构中,则情况会更加复杂。 一般来说,如果结束场景中不再处于层次结构中的视图仍然有父项(因此其父层次结构已被删除,但未从其父项中移除),则它将被单独放置以避免副作用不恰当地将其从其父母移除。 唯一的例外是,如果前面的Scenecreated from a layout resource file ,那么为了使其消失而将开始场景视图取消父母认为是安全的。

Parameters
sceneRoot ViewGroup: The root of the transition hierarchy
startValues TransitionValues: The target values in the start scene
startVisibility int: The target visibility in the start scene
endValues TransitionValues: The target values in the end scene
endVisibility int: The target visibility in the end scene
Returns
Animator An Animator to be started at the appropriate time in the overall transition for this scene change. A null value means no animation should be run.

setMode

Added in API level 21
void setMode (int mode)

根据 mode更改过渡以支持出现和/或消失的视图。

相关XML属性:

Parameters
mode int: The behavior supported by this transition, a combination of MODE_IN and MODE_OUT.

Hooray!