如何在Ionic3应用程序中实现自定义页面过渡

Ionic是编写自己的应用程序的绝佳框架。它基于Cordova和angular,使您能够快速编写外观漂亮的应用程序而无需太多精力。

根据您用来启动应用程序的平台,Ionic甚至还带有预定义的页面过渡,以便将一个页面的导航设置为另一个页面。iOS上的标准页面转换是从左侧或右侧滑动。它看起来像这样:


然而,Ionic页面转换的文档非常令人困惑,作为一个初学者,需要一些时间来了解哪些转换应该使用哪些转换。官方文档包含NativePageTransitions模块的页面,但我建议您不要使用它。它不仅长时间没有收到任何更新,而且为了制作动画,模块会截取起始页和着陆页的截图,并为两个图像设置动画。这似乎是一种奇怪的方式来做到这一点,而未解决问题的公开问题的数量说明了一切。

您应该使用的是Ionic NavController类的集成功能,您已经使用它来在页面之间导航。默认情况下启用此功能(取决于平台),但也可以使用导航呼叫进行配置:

this.navCtrl.push(MyPageComponent, null, {animate: true, animation: "transition"}); 

使用“animate:true”可以打开动画(这是标准设置),“animation:transition”设置用于动画页面过渡的动画。它的字符串和“转换”意味着根据当前平台使用标准转换。当你想在Android平台上使用iOS转换时,你可以像这样启动导航:

this.navCtrl.push(MyPageComponent, null, {animate: true, animation: "transition-ios"}); 

没有其他可以使用的内置转换(如向下滑动,向上滑动或向外扩展),我完全没有找到如何实现自定义转换的官方文档。但是,有一种准官方的方式来实现您自己的过渡。

您可以像实现官方转换一样实现自己的转换类:编写扩展“ionic-angular / PageTransition”类的自己的转换类,并在离子运行时注册新的转换。

最基本的转换如下所示:

import{NgModule} from "@angular/core";

import{Config, IonicApp, PageTransition} from "ionic-angular";

import{MyApp} from "./app.component";


@NgModule({

    declarations: [MyApp],

    imports: [...],

    bootstrap: [IonicApp],

    entryComponents: [MyApp,...],

    providers: [...]

})

exportclassAppModule {

    constructor(privateconfig: Config) {

        this.config.setTransition("emptyTransition", EmptyTransition)

    }

}


exportclassEmptyTransition extendsPageTransition {

    init() {

        //here would be the implementation of your own page transition

    }

}

当您查看iOS页面转换官方实现时,您可以看到您可以使用ionic-angular提供的Animation类定义进入和离开页面的动画。由于没有文档我不得不使用试验和错误如何找出如何使用这个类。

在搞砸了一段时间之后,我遇到了一些我自己的页面转换:“滑动”和“向下滑动”。

SlideTransition是一个左/右滑动过渡,类似于官方的“transition-ios”,但它动画整个页面内容而不仅仅是内容,而页眉和页脚元素保持固定。


然而,SlideDownTransition有点不同。它会向下滑动离开的页面内容,并在执行此操作时显示输入的页面内容。


SlideTransition经过测试,可以在向前和向后转换中工作(想想:Android后退按钮)。SlideDownTransition可能不起作用,但我没有测试它,因为我的用例不需要它工作。

令人讨厌的是,官方转换是手动控制标题组件中标准后退按钮的可见性。我不明白为什么这是在页面转换中完成而不是某种后退按钮组件。因此,我放弃了在我的应用程序中使用官方后退按钮,并在需要时始终使用我自己的按钮(情况并非总是如此)。因此,上述页面转换的实现并不关心后退按钮的可见性,因此标准后退按钮始终是不可见的。

使用Ionic Animation类,您可以定义一些开始和结束样式,然后在离子页面的页面元素上设置。样式是我们众所周知的CSS样式,不使用BrowserAnimationsModule提供的角度动画功能。实现转换相对简单,因为您可以调整之前在Web应用程序中使用的众所周知的转换的大部分代码。

但是,我希望Ionic团队至少有一些关于此功能的官方文档。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,016评论 4 62
  • 刚刚在抖音刷到这样一个视频:题主去朋友家吃饭,朋友的弟弟在用门夹核桃给题主吃。弟弟个子不高,略微有些驼背,看起来行...
    珠江渔民阅读 135评论 0 0
  • 挥别渐行渐远的2016年,有笑有泪,有遗憾,有期待。回首2016年我的关键词:感恩、惜福、纠结、停滞。 一、感恩 ...
    逆风飞行83阅读 283评论 0 0
  • 以前梦见失去你,梦醒后心里很害怕,会马上打电话给你,听听你的声音,听见你没什么事情、好好的消息,才能安抚住那害怕的...
  • 宝贝今天的5分钟 每天哄宝贝睡觉都是重要且艰巨的任务,么么么,所以都要想好久,想着就硬了,然后又忍不住意淫,嘿嘿,...
    握着荆条阅读 146评论 0 0