一、简介
Slide类是在API21中新加入的类,继承关系如下:
java.lang.Object
android.transition.Transition
andoird.transition.Visibility
android.transition.Slide
这种转换追踪目标视图在场景的开始和结束时的变化,以及移动视图从场景的一个边缘进出的变化。其可见性由view的setVisibility(int)的情况以及其父容器是否在当前视图层级中共同决定。
二、XML属性
2.1自有属性
android:slideEdge
表示其实滑动的侧边位置
- RIGHT/END:右侧
- LEFT/START:左侧
- BOTTOM:底部
- TOP:顶部
2.2继承属性
andoird.transition.Visibility
android:transitionVisibilityMode
表示这种变换所支持的出现或消失的视图变化之一。
- MODE_IN(1):只支持出现视图
- MODE_OUT(2):只支持消失视图
android.transition.Transition
android:duration
表示这次变换所需要的时间戳。
android:interpolator
表示这次变化中在动画中引入使用插入器。
android:startDelay
表示这次变化之前延迟的毫秒数。
三、构造函数
- Slide():该构造函数使用默认的BOTTOM边缘滑动效果。
- Slide(int slideEdge):该构造函数使用所提供的边缘滑动方式。
- Slide(Context context,AttributeSet attrs)
四、所提供的公共方法
- void captureEndValues(TransitionValues transitionValues):获取场景结束时的值给变化监控器
- void captureStartValues(TransitionValues transitionValues):获取场景开始时的值给变化监控器
- int getSlideEdge():返回视图出现和消失的边缘
- Animator onAppear(ViewGroup sceneRoot,View view,TransitionValues startValues,TransitionValues endValues):这种方法默认实现返回一个为null的Animator。
- Animator onDisappear(ViewGroup sceneRoot,View view,TransitionValues startValues,TransitionValues endValues):这种方法默认实现返回一个为null的Animator。
- void setSlideEdge(int slideEdge):改变视图出现和消失的边缘。
五、拉出来溜溜
1、Java代码创建
Slide slideTransition = new Slide();
slideTransition.setSlideEdge(Gravity.START);
slideTransition.setDuration(500);
Window window = getWindow();
//再次进入时使用
window.setReenterTransition(slideTransition);
//退出时使用
window.setExitTransition(slideTransition);
2、XML文件创建
- 在res目录下创建transition文件夹;
- 在transition文件夹内slide文件;
<?xml version="1.0" encoding="utf-8"?>
<slide xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:slideEdge="end">
</slide>
- 在Java代码中获取XML资源;
Transition slideTransition =TransitionInflater.from(this).inflateTransition(R.transition.slide_transition);
Window window = getWindow();
window.setReenterTransition(slideTransition);
window.setExitTransition(slideTransition);
网友评论