转场动画

Router 提供了多种转场动画,均由原生实现,不管是通过何种方式打开,均可设置动画。

动画类型

可选动画类别 效果
moveFromTop 上进上出
moveFromRight 右进右出(默认值)
moveFromLeft 左进左出
moveFromBottom 下进下出
Fade 淡入淡出
NoAnimation 无动画
moveFromCenter 从中间开始缩放比例为从60%-100%,透明度从0-1

使用方式

js 跳转

Ext.open('Home', {
    param: {
        name: 'home'
    },
    sceneConfigs: 'moveFromRight'
});

scheme 跳转

只需要拼入参数 sceneConfigs 即可

scheme://react/open?hybridId=qrn-demo&pageName=demo&sceneConfigs=moveFromRight

Android 跳转

  1. 通过 QReactNative.startReactActivity
Bundle bundle = new Bundle();
bundle.putString("sceneConfigs", "moveFromRight");
QReactNative.startReactActivity(activity, hybridId, pageName, bundle);
  1. 自定义 View
String animationType = "moveFromRight";
QReactViewModule reactViewModule QReactNative.createReactModule(hybridId, pageName, jsonParams, animationType, reactRootView);
qReactHelper.doCreate(reactViewModule, hybridId, pageName, false, launchOptions, listener);

IOS 跳转

  1. 通过 QRCTVCCreater 打开vc
 [QRCTVCCreater createVCWithHybridId:hybridID
                                 moduleName:moduleName
                          initialProperties:initProps
                                 hasLoading:YES
                          completionHandler:^(QRCTViewController *qrctVC, NSError *error) {
                              if (!qrctVC) {
                                  return;
                              }
                              // 这里要设置qrctVC的animation属性,就会在页面pop的时候以相应的动画pop回来
                              qrctVC.animation = [QRCTVCController animationWithSceneConfigs:@"PushFromRight"];
                              dispatch_async(dispatch_get_main_queue(), ^{
                                  // 这里可以使用QRCTVCController来push
                                  [QRCTVCController pushVC:qrctVC withAnimation:[QRCTVCController animationWithSceneConfigs:@"PushFromRight"]];
                                  //或者也可以使用大客户端提供的 VCController 来 push  具体支持动画方式看下表
                                  [VCController pushVC:qrctVC WithAnimation:[VCAnimationBottom defaultAnimation]];
                              });
                          }];       

大客户端 VCController 支持的动画类型

可选动画类别 效果
VCAnimationTop 上进上出
VCAnimationClassic 右进右出(默认值)
VCAnimationLeft 左进左出
VCAnimationBottom 下进下出
VCAnimationFade 淡入淡出
nil 无动画
VCAnimationCenter 从中间开始缩放比例为从60%-100%,透明度从0-1
  1. 通过 QRCTViewCreater 创建 RootView 并自定义 VC 由于试图控制器是自定义的,所以需要自行实现专场动画