Slide

作者: 程序员丶星霖 | 来源:发表于2017-05-24 17:28 被阅读194次

一、简介

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);

相关文章

网友评论

    本文标题:Slide

    本文链接:https://www.haomeiwen.com/subject/qcyoxxtx.html