我尝试使用routerExtensions的页面转换但没有成功。 (2.3.0)
我试过js:
this.routerExtensions.navigate(
[
'myPage'
],
{
animated: true,
transition:
{
name: 'flip',
duration: 2000,
curve: 'linear'
}
}
);
我尝试了xml:
<Button text="Goto myPage" [nsRouterLink]="['/myPage']" pageTransition="flip"></Button>
当我导航到&#34; myPage&#34;这两种方式都有效。但没有动画。 我需要更改为&#34;启用&#34;动画还是我错过了一些明显的东西?
答案 0 :(得分:2)
在提供的上下文中,很难确切说明为什么它不起作用。
您真正需要做的就是:
设置要路由到的组件:
app-routing.module.ts
const routes: Routes = [
{ path: '', pathMatch: 'full', redirectTo: '/home' },
{ path: 'home', component: HomeComponent },
{ path: 'about', component: AboutComponent },
{ path: 'contact', component: ContactComponent },
];
使用router-outlet
app.component.ts
import { RouterExtensions } from "@nativescript/angular/router";
@Component({
selector: "ns-app",
templateUrl: "./app.component.html"
})
export class AppComponent {
constructor(private routerExtensions: RouterExtensions) {}
public navigate(link: string): void {
this.routerExtensions.navigate([link], {
animated: true,
transition: { name: 'slide' }
});
}
}
当然有一种方法可以调用此方法
app.component.ts
<StackLayout>
<FlexboxLayout>
<Button text="Home" (tap)="navigate('home')"></Button>
<Button text="About" (tap)="navigate('about')"></Button>
<Button text="Contact" (tap)="navigate('contact')"></Button>
</FlexboxLayout>
<StackLayout>
<page-router-outlet actionBarVisibility="never"></page-router-outlet>
</StackLayout>
</StackLayout>
我已经在https://github.com/gsavchenko/nativescript-page-transitions处演示了一个工作回购。不使用nativescript本机路由API,也有可能实现这些目标。
干杯, 让我知道是否还有其他问题。
答案 1 :(得分:-1)
通过nativescript查看Groceries应用程序,它是所有nativescript组件的一个很好的资源 - https://github.com/NativeScript/sample-Groceries。你可以找到他们在里面给出的过渡动画。
祝你好运。如果需要任何帮助,请询问。