2017-09-08 1 views
0

이오닉 프레임 워크에서 Android Fragments를 만들고 싶습니다. 헤더에는 애니메이션이있는 버튼 등이 있습니다. 그래서 navctrl.push 나 navctrl.setroot를 사용할 수 없습니다. 이온 함유량 (MainPage)의 내용 만 바꾸고 이온 함유량 만 포함하는 새로운 페이지를로드해야합니다. 다음은 내가 어떻게하고 싶은지 보여주는 그림입니다.이오닉 이오 페이지

어떤 가능성이 있습니까?

Picture

app.html

<ion-header> 
    <ion-navbar> 
     <ion-title>Blabla</ion-title> 
     <button ion-button color="primary" (click)="home()">Home</button> 
     <button ion-button color="primary" (click)="second()">Second</button> 
    </ion-navbar> 
</ion-header> 
<ion-content> 
</ion-content> 
<ion-nav #myNav [root]="rootPage"></ion-nav> 

app.component.ts 홈페이지 및 SecondPage에서

import { Component, ViewChild } from '@angular/core'; 
import { Platform, NavController } from 'ionic-angular'; 
import { StatusBar } from '@ionic-native/status-bar'; 
import { SplashScreen } from '@ionic-native/splash-screen'; 

import { HomePage } from '../pages/home/home'; 
import { SecondpagePage } from '../pages/secondpage/secondpage'; 
@Component({ 
    templateUrl: 'app.html' 
}) 
export class MyApp { 
    @ViewChild('myNav') nav: NavController; 
    rootPage:any = HomePage; 

    constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) { 
    platform.ready().then(() => { 
     // Okay, so the platform is ready and our plugins are available. 
     // Here you can do any higher level native things you might need. 
     statusBar.styleDefault(); 
     splashScreen.hide(); 
    }); 
    } 

    home() { 
    this.nav.setRoot(HomePage); 
    } 

    second() { 
    this.nav.setRoot(SecondpagePage); 
    } 

} 

나는 단지에서 Test1 및 Test2를 넣어. 이제 그 상황이 있습니다. 헤더가 나머지를 "덮습니다". 헤더 아래에 있으므로 텍스트가 표시되지 않습니다. 어떻게 그 행동을 바꿀 수 있습니까?

답변

0

확실히. 당신은

NavControllers 그것은 navroot의 자식으로 새 페이지가 열립니다

import {MainPage} from 'main' 

@Component({ 
    template: '<ion-nav [root]="rootPage"></ion-nav>' 
}) 
class MyApp { 
    // First page to push onto the stack 
    rootPage = MainPage; 
} 

main.component.ts

import { Component, ViewChild } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 

@Component({ 
    template: ` 
    <ion-header>{{ YOUR HEADER }}</ion-header> 
    <ion-content> 
     <ion-nav #yourNav [root]="rootPage"></ion-nav> 
    </ion-content> 
    ` 
}) 
export class MainPage { 
    @ViewChild('yourNav') nav: NavController 
    public rootPage: any = StartPage; 

    public goSomeWhere() { 
    this.nav.push(SomeWhere); 
    } 

    public goSomeWhereElse() { 
    this.nav.push(SomeWhereElse); 
    } 
} 
+0

을 app.component.ts 이름을 가질 수 있습니다. 따라서 Rootpage에서 시작된 애니메이션은 두 번째 페이지에서 계속되지 않습니다. 머리글을 한 번만 두 번 열 수 없습니다. 이온 함유량을 변경할 수 있습니다. – Ace

+0

아니요, 그렇지 않습니다. 'MyApp' 컴포넌트에서'ion-nav'의 루트에'MainPage'를 사용하십시오. 또는 다른 방법. 트릭은 다른 nav 컨트롤러를 가질 수 있고 main/root nav 컨트롤러 대신 하위보기에서 사용하는 것입니다. 내 소스 코드는 일러스트레이션이지 복사 및 붙여 넣기 솔루션이 아닙니다. –

+0

구성 요소를 만들었으며 버튼과 애니메이션이있는 머리글이 있습니다. 이 페이지를 어떻게 탐색해야합니까? @ViewChild ('yourNav') nav : NavController를 넣은 것을 볼 수 있습니다.하지만 그 구성이 Root이거나 무엇인지 알고 싶지 않습니다. – Ace

관련 문제