ã¢ãŒãã«å
ããNavController#push
ã䜿çšããŠæ°ããããŒãžãããã·ã¥ããããšãiOSã®ã¹ããŒã¿ã¹ããŒãšããã²ãŒã·ã§ã³ããŒãéãªãå ŽåããããŸãã ã¹ã¯ãªãŒã³ã·ã§ãããåç
§ããŠãã ããã
ä»ã®ãã¹ãŠã®ããã²ãŒã·ã§ã³ããŒãšåæ§ã«ãããã¯ã¹ããŒã¿ã¹ããŒçšã«ååãªã¹ããŒã¹ãæ®ãå¿ èŠããããŸãã
åçŸããæé ïŒ
NavController#push
ãåŒã³åºããŸããã©ã®ã€ãªã³ããŒãžã§ã³ïŒ 2
https://github.com/zmbc/statusbar
ãªã¹ãã«ç§»åããŠã¢ã€ãã ãéãããPushSomethingããã¯ãªãã¯ããŸãã
ã¿ãŒããã«/ cmdããã³ããããionic info
ãå®è¡ããŸã:(以äžã«åºåã貌ãä»ããŸãïŒ
GulpããŒãžã§ã³ïŒCLIããŒãžã§ã³3.9.1
GulpããŒã«ã«ïŒããŒã«ã«ããŒãžã§ã³3.9.1
Ionic FrameworkããŒãžã§ã³ïŒ2.0.0-beta.11
Ionic CLIããŒãžã§ã³ïŒ2.0.0-beta.32
Ionic App LibããŒãžã§ã³ïŒ2.0.0-beta.18
ios-deployããŒãžã§ã³ïŒ1.8.6
ios-simããŒãžã§ã³ïŒ3.1.1
OSïŒMac OS X El Capitan
ããŒãããŒãžã§ã³ïŒv6.3.0
XcodeããŒãžã§ã³ïŒXcode7.3.1ãã«ãããŒãžã§ã³7D1014
ããã§åãåé¡ã æ°ããããŒãžãããã·ã¥ããã®ã§ã¯ãªãã2çªç®ã®ã¢ãŒãã«ãšããŠæ瀺ããããšã§è§£æ±ºããŸããã
çããããã«ã¡ã¯ïŒ IonicïŒããå©çšããã ãããããšãããããŸãã RC0ã§ã¯ãã®åé¡ãåçŸã§ããªããªã£ãããšãå ±åã§ããŠããããã§ãã ããããšãïŒ
ãã®ãã°ã¯ãŸã ååšããŸãã ãã®åé¡ã¯ãå®éã®ããã€ã¹/ãšãã¥ã¬ãŒã¿ãŒã§ã®ã¿åçŸã§ããŸãã {statusbarPaddingïŒtrue}ãIonicModule.forRoot(MyApp, config)
å€æ°ã«æž¡ããªãéãããã¹ã¯ããããã©ãŠã¶ã«ã¯è¡šç€ºãããŸããã RC0https ïŒ//github.com/msalcala11/modal-padding-bugã§ãã®åé¡ã瀺ãããã®ã¯ã€ãã¯ãªããžããªãäœæããŸãã
ããã§åãåé¡ã
ãã®åé¡ã確èªã§ããŸã
ã¯ãããã®åé¡ã¯ãŸã ååšããŸãã åéããŠãã ãã
ã¢ãŒãã«ãããé©åã«ææžåããå¿
èŠããããŸããçŸåšãããã«åãçµãã§ãã人ã
ãããŸãã
@comfortme @royipressburger @CyrisXD @ msalcala11 @zmbcã¢ããªã§ããã²ãŒã·ã§ã³ãè¡ãã®ãšåãããã«ãã¢ãŒãã«å
ã§ããã²ãŒã·ã§ã³ãè¡ãã«ã¯ãæ°ããã€ãªã³ããã²ãŒã·ã§ã³ãäœæããå¿
èŠããããŸãã
@Component({
template: '<ion-nav [root]="root"></ion-nav>'
})
export class NavigationModal {
root = ModalFirstPage;
}
// YOUR CONTENT MODAL
@Component({})
export class ModalFirstPage {
}
(...)
presentModalChildNav() {
this.modalCtrl.create(NavigationModal).present();
}
ããã¯ãŸã ç§ã«ã¯æ¬åœã«æå³ããããŸããã
ãŠãŒã¶ãŒãã¢ããªå ã®ã©ãã«ãããã«å¿ããŠãå¥ã®ããŒãžãŸãã¯ã¢ãŒãã«ãã移åããããŒãžããããŸãã
ã¢ãŒãã«å ã§nav.pushãå®è¡ãããšãããŒãžã«ç§»åããŸãããã¹ãŠãæ£åžžã«é·ç§»ããåžæã©ããã«æ©èœããŸãã ã¢ãŒãã«ããããŒãžã«ç§»åãããšãã«ã¹ããŒã¿ã¹ããŒã®ããã£ã³ã°ãé©çšãããªãããšãé€ããŠã
äžèšã®ã³ãŒãã¹ãããããã©ã®ããã«åœ¹ç«ã€ã®ããå®éã«ã¯ããããŸããã æ©èœçã«ã¯ãã¹ãŠãæ©èœããŠããã以åã®ããŒã¿çã®1ã€ã§ã¯ã¹ããŒã¿ã¹ããŒã®ããã£ã³ã°ãæ£ããé©çšãããŠãããããããã¯æ¬åœã«åçŽãªããšã®ããã§ãããåŸã®ãªãªãŒã¹ã§åã³å£ããŸããã
androidã¯ãå¥ã®ããŒãžãŸãã¯ã¢ãŒãã«ããããã²ãŒãããåãã³ãŒãã§åé¡ããªãããšã«æ³šæããŠãã ããããã¹ãŠãæ£ãããã©ãŒããããããæ£åžžã«åäœããŸããiosã¯åãã§ãããšæããŸãã
ãŸã ååšããŠããŸãã ãããé²ãããã®ç°¡åãªããã¯ã¯ãããŸããïŒ
ãããä¿®æ£ããã«ã¯ã次ã®CSSãion-navbarãšion-titleã«é©çšããŸãã ngIf *ã䜿çšããŠãandroidããããå¿ èŠãšããªããããplatform.isïŒiOSïŒã®å Žåã«ã®ã¿é©çšããŸãã ããã¯ãiOSã®å¥ã®ããŒãžããéããšãã«ãããã©ã«ãã®cssã«ãã£ãŠåçŽã«ãªãŒããŒã©ã€ãããããããåé¡ãçºçããŸããã
ãŸããæ°ããããã·ã¥ãããããŒãžããéããã¢ã©ãŒã/ã¢ã¯ã·ã§ã³ã·ãŒã/ããããªãŒããŒã¯ãããŒãžã®åŸãã§éãããšã«æ³šæããŠãã ããã ãããã®ã³ã³ããŒãã³ãã®z-indexå€ãããã¯ããŠãã¢ãŒãã«z-indexãããé«ãããåžžã«æäžäœã«ãªãããã«ããå¿ èŠããããŸãã ãšã«ãããããã®ãã®ãåžžã«äžã«ããã¹ãã§ããããšãèãããšãããã¯å®éã«ã¯åé¡ã§ã¯ãããŸããã
<ion-navbar *ngIf="globals.isIos" style="height:calc(44px + 20px); min-height:calc(44px + 20px); padding-top:20px;">
<button ion-button menuToggle>
<ion-icon name="menu"></ion-icon>
</button>
<ion-title style="padding-top:14px !important;">{{selectedItem.name}}</ion-title>
</ion-navbar>
ãŸã ãã®åé¡ããããŸãã ããã¯ããã«ä¿®æ£ãããŸããïŒ
@mrhirschããã«ãåæ§ã®åé¡ããã@ manucorporatã¯ãç§ãæäŸããã¬ãã®äŸãæ±ããã®ã§ã圌ããããã«åãçµãã§ããããšãé¡ã£ãŠããŸãã
@ ghenry22
ãã®ããã£ã³ã°ãè¡ãæ¹æ³ã¯è¯ãæ¹æ³ã§ã¯ãããŸããã ãã©ãããã©ãŒã ã¿ã€ãã«åºã¥ããŠããã²ãŒã·ã§ã³ããŒãé衚瀺ã«ããããã«*ngIf
ã䜿çšããªãã§ãã ããã ãã®åŸã®ion-content
ã®èšç®ã§ã¯ãããã²ãŒã·ã§ã³ããŒãèæ
®ãããã ion-content
å
šäœãã·ããã¢ããããŸãã
代ããã«ã app.scss
ã«æ¬¡ã®CSSãè¿œå ããŸãã
.platform-ios .ios-header {
height:calc(56px + 20px);
min-height:calc(56px + 20px);
padding-top:20px;
}
次ã«ããããå¿
èŠãªããããŒã«åçŽã«ïŒç§ã«ãšã£ãŠã¯ãã¿ãããŒãžã«ããã·ã¥ãããã¹ãŠã®ããŒãžã§ãïŒã class="ios-header"
è¿œå ããã ãã§ãã
<ion-header>
<ion-navbar class="ios-header">
</ion-navbar>
</ion-header>
å€ãã®ä¹Ÿç¥æ©ããããŠion-content
åé¡ãªãã ãã¡ãããIonicããŒã ããããèªåã§èª¿ã¹ãå Žåããã®èŠçãçµéšããå¿
èŠã¯ãããŸããã
ããããªãŒããŒã§ããã«ã€ãŸãããŠãã人ã«ãšã£ãŠãããã¯åãåé¡ã§ãã
解決çã«ã€ããŠïŒCSSä¿®æ£ã¢ãããŒããæ¡çšããããšã¯ãå§ãã§ããŸãããããã¯ãèšèšã©ããã«å®è¡ããŠããªãããšããã¹ã¯ããŠããã ãã ããã§ãïŒå°ãå¥åŠãªèšèšã§ãã£ãŠãïŒã
manucorporatãææããŠãã以å€ã®è§£æ±ºçã¯ãã€ãã³ããåŠçããããšã§ãã ç§ã¯ãã®ããã«ãããããŸããããããŠããã¯ãšãŠãã·ã³ãã«ã§ãããã§ãã ã¢ãŒãã«ããŒãžãŸãã¯ããããªãŒããŒããŒãžã§ã€ãã³ããçºçãããã芪ãããŒãžã§ãããèãã ãã§ãã ã€ãã³ãã®è©³çŽ°ã«ã€ããŠã¯ã https ïŒ
@timvandijckäŸãæããŠããã ããŸããïŒ
@ kabus202ããã¯ããããªãŒããŒã®äŸã§ãïŒ
ããããªãŒããŒãèµ·åããããŒãžïŒ
@Component({
selector: 'page-my-page',
templateUrl: 'my-page.html'
})
export class MyPage {
popover = null;
constructor(public navCtrl:NavController, public popoverCtrl: PopoverController, public events: Events) {
this.events.subscribe('nav:my-other-page', () => {
this.navCtrl.setRoot(MyOtherPage);
if (this.popover) {
this.popover.dismiss();
}
})
}
toggleActionsMenu(event) {
this.popover = this.popoverCtrl.create(PopoverContentPage);
this.popover.present({
ev: event
});
}
}
ããããªãŒããŒã®ã³ã³ãã³ããå«ãããŒãžïŒ
@Component({
selector: 'page-popover-content',
templateUrl: 'popover-content.html'
})
export class PopoverContentPage {
constructor(public events: Events) {
}
registerAppliance() {
this.events.publish('nav:my-other-page');
}
}
ãããããã¯ãŸã åé¡ã§ãã ãŸããã¹ã¯ã€ãããŠå ã«æ»ãããšãããšãã¢ãŒãã«ã®äžã«è¡šç€ºã衚瀺ãããããšããããŸãã @ jgw96
ã€ãªã³è§åºŠ3.3.0ã«ã¯ãŸã ååšããŸãã ãããä¿®æ£ããæ¹æ³ã¯ãããŸããïŒ
@manucorporatãã®åé¡ãåéããŠ
ã¯ããããäžåºŠéããŠãã ãã
@vosecekåé¡ã¯ååšããŸãããäžèšã§æçš¿ããcssä¿®æ£ã䜿çšã§ããŸãã 3.3ã§åäœããŸãã
ããã¿ããªã NavController API ãç¹ã«ãªãŒããŒã¬ã€ã³ã³ããŒãã³ãããã®ããã²ãŒããšããã¿ã€ãã«ã®ã»ã¯ã·ã§ã³ããã§ãã¯ããŠãã ããïŒä»¥äžã«è²Œãä»ããããŠããŸãïŒ
this.appCtrl.getRootNav()
ã®äœ¿çšã«æ³šæããŠãã ããã ããã¯ç§ã«ãšã£ãŠéåžžã«ããŸããã£ãã®ã§ã App
ã䜿çšããŠä»ã®äººã®ããã«ãã®åé¡ãä¿®æ£ãããã©ããèå³ããããŸãã ãšã«ãããã¿ããªãããã«ã€ããŠç¥ã£ãŠããã¹ãã ãšæã£ãã ãã§ãã
import { Component } from '@angular/core';
import { App, ViewController } from 'ionic-angular';
@Component({
template: `
<ion-content>
<h1>My PopoverPage</h1>
<button ion-button (click)="pushPage()">Call pushPage</button>
</ion-content>
`
})
class PopoverPage {
constructor(
public viewCtrl: ViewController
public appCtrl: App
) {}
pushPage() {
this.viewCtrl.dismiss();
this.appCtrl.getRootNav().push(SecondPage);
}
}
åé¡ã¯ãnav.pushã ãã§ã誰ãä¿®æ£ã«èå³ããªãããã«èŠããCSSãé€ããŠããã¹ãŠãå®å šã«æ£åžžã«æ©èœããã®ã«ããªãé äžã«å€ããè¿œå ããã®ããšããããšã ãšæããŸãã
ããã¯ãã¢ã³ããã®åé¡ã«å¯ŸããAppleã®ãç°ãªãæ¹æ³ã§ä¿æãããå¿çãæãåºãããŸãã
ãã®åé¡ããŸã çºçããŠããã®ã«ããªããã®åé¡ã解決ãããã®ã§ããïŒ
@edwinchoateããã¯æ©èœããŸãããããŒãžããæ»ã£ããšãã«ããããªãŒããŒãã¢ã¯ãã£ãã«ããå¿ èŠãããå Žåã¯æ©èœããŸããã çŸåšã®ãã¶ã€ã³ã®éåžžã®ããŒãžã®ããã«ããããªãŒããŒã«ç§»åããŠæ»ãããšã¯ã§ããªããšæããŸããããããªãŒããŒã¯ãã¹ãŠã®éåžžã®ããŒãžãããé«ãã¬ã€ã€ãŒã«é 眮ãããŠãããããéããå¿ èŠããããŸãã 圌ããããããªãŒããŒã®æ¯ãèããå®å šã«å€ããªãéãã
ãã®ãã°ã¯ä¿®æ£ãããŠããªãã®ã§ãåé¿çãšããŠãã®SCSSã³ãŒããè¿œå ããŸããããããŸããããŸããã ã圹ã«ç«ãŠã°å¹žãã§ãã
.toolbar-ios {
height: 44px + $cordova-ios-statusbar-padding;
padding-top: $cordova-ios-statusbar-padding;
}
.toolbar-title-ios {
padding-top: $cordova-ios-statusbar-padding;
}
ãŸã ããã«ã€ãŸãããŠãããã¹ãŠã®äººã
ã«ã @manucorporatã¯ãã§ã«æ£ããã¢ã€ãã¢ãæ瀺ããŸããã ã³ãŒãã«ãšã©ãŒããããããäžå®å
šã§ãã ç§ã¯ãããIonic 3.6.0
ãã¹ãããŸããã
ã¢ãŒãã«ãšããŠè¡šç€ºããã³ã³ãã³ãããŒãžã«ã次ã®ãããªnavèŠçŽ ãæã€å¥ã®ã©ãããŒããŒãžã¯ã©ã¹ãå«ããã ãã§ãã
@Component({
template: '<ion-nav [root]="this.rootPage" [rootParams]="this.rootParams"></ion-nav>'
})
export class MyModalWrapper {
private rootPage = MyModalContentPage;
private rootParams;
constructor(navParams: NavParams, private viewCtrl: ViewController) {
this.rootParams = navParams;
this.rootParams["data"]["closeModal"] = this.onCloseModal
}
onCloseModal = () => {
this.viewCtrl.dismiss();
}
}
次ã«ãã³ã³ãã³ãããŒãžã¯ã©ã¹ã次ã®ããã«å€æŽããŸãã
@Component({ /* ... */ })
export class MyModalContentPage {
/* ... */
private closeModal;
constructor(navParams: NavParams, /* ... */) {
this.closeModal = navParams.get("closeModal");
}
/* ... */
}
ããã§ãã¯ã©ã¹ãŸãã¯ãã³ãã¬ãŒãã®éåžžã®é¢æ°ã®ããã«closeModal
ãåŒã³åºãããšãã§ããŸãã
ããšã¯ãã¢ãŒãã«ãäœæããŠæ瀺ããå Žæã§MyModalContentPage
ãMyModalWrapper
眮ãæããã ãã§ãã ãããã£ãŠã代ããã«ïŒ
this.modalCtrl.create(MyModalContentPage, { /* ... */ }).present();
ãããè¡ãïŒ
this.modalCtrl.create(MyModalWrapper, { /* ... */ }).present();
ã圹ã«ç«ãŠãã°ã
@codemusingsç§ã¯ããããã®ããã«ããïŒ
@Component({
template: '<ion-nav [root]="root" [rootParams]="params"></ion-nav>'
})
export class MyModalWrapper {
root = MyModalContentPage;
params: any;
constructor(
public navParams: NavParams,
viewCtrl: ViewController,
) {
this.params = Object.assign({}, navParams.data, {viewCtrl: viewCtrl});
}
}
@Component({ /* ... */ })
export class MyModalContentPage {
/* ... */
private viewCtrl: ViewController;
constructor(navParams: NavParams, /* ... */) {
this.viewCtrl = navParams.get('viewCtrl');
}
/* ... */
someFunc() {
this.viewCtrl.dismiss();
}
}
ViewController
å
šäœãæž¡ãããšã§ãé垞䜿çšããã®ãšåãthis.viewCtrl.dismiss()
ã䜿çšã§ããŸãã ã³ã³ã¹ãã©ã¯ã¿ãŒãé€ããŠãã³ã³ãã³ãããŒãžãå€æŽããå¿
èŠã¯ãããŸããã
ç§ã¯Ionic 3.3.0
ããŸãããææ°ã®ãã®ã§ãæ©èœãããšæããŸãã
ããããåé¡ã¯ãæ©èœçã«ã¯ãã®ãŸãŸã§å®å šã«æ£åžžã«æ©èœããäœåãªã³ãŒãããã¹ãŠå¿ èŠãšãããiOSå°çšã®1è¡ã®CSSä¿®æ£ã ãã§ããããããåé¡ã§ã¯ãããŸããã
@ ghenry22ããã¯ãã¢ãŒãã«ãå°ãããŠãããã·ã¥ãããããŒãžããã«ã¹ã¯ãªãŒã³ã§ããiPadãªã©ã®å€§ç»é¢ã§ã¯å®å šã«ã¯æ£ãããããŸããã
ã¢ãŒãã«JustWorkedå
ã®nav.push
ãæã¿ãŸãã ããããç§ã¯ãããããããŒãªCSSä¿®æ£ã«äŸåãããããããã®ããè€éãªæ¹æ³ã§ãããå®è¡ããããšæããŸãã
@ ghenry22 @zmbc nav-viewã¯ãã¢ãŒãã«ãéããšãã«äœæããåå¥ã®navã¹ã¿ãã¯ãæå³ããŸãã ããããéãã§ãã
navCtrl.popãåŒã³åºããšãIonicã¯ã¢ãŒãã«ã«ãªã£ãŠãããšããšããã§ãªããšããç解ã§ããªããããã«ãŒãããã²ãŒã·ã§ã³ã«äžæ³šæãªåé¡ãçºçããå¯èœæ§ããããŸãã
iOSã§ããã·ã¥ãããããŒãžã«ãåé¡ã¯ãããŸãããïŒ ç¢ºèªã®ããã«èšåããã®ã§ãããäžåºŠãã¹ãããŸããããããã¯ç§ã«ãšã£ãŠã¢ãŒãã«ã®ç¯å²å ã«ãšã©ãŸããŸãã
åºæ¬çã«ãã¢ãŒãã«å ããããŒãžãããã·ã¥ãŸãã¯ããããããšãã¢ãŒãã«å ã§ããŒãžãèªã¿èŸŒãŸãããã€ã³ããããããšãæåŸ ãããŸãã
éåžžã®ããŒãžãæŒããããããããããããšãéåžžã®ãã«ã¹ã¯ãªãŒã³ããŒãžã§èªã¿èŸŒãŸãããšæããŸãã
ã©ã¡ãã®ã·ããªãªã§ã䜿çšã§ããããŒãžããããããäžæ¹ã®ã·ããªãªãåŠçããã³ãŒããè¿œå ãããšãããäžæ¹ã®ã·ããªãªã§åé¡ãçºçããå¯èœæ§ããããŸãã
ã¢ãŒãã«å ã®ããã·ã¥ãããããŒãžãiPadã§å šç»é¢è¡šç€ºã«ãããå Žåã¯ãã¢ãŒãã«ãéããŠããããŒãžãããã·ã¥ããæ©èœãå¿ èŠã«ãªããšæããŸãããããã¯ç¢ºãã«å°ãåä»ã«ãªãå¯èœæ§ããããŸãã
@wbhobããã¯æãŸããçµæãããããŸããããããªããããªããã°ãªããªãã®ã¯ããã®ãã±ãããšã€ãªã³ãã©ãŒã©ã ãšã¹ã¿ãã¯ãªãŒããŒãããŒãèŠãŠãåã質åãäœåºŠã
ãããã£ãŠãæããã«ãããã¯äººã ã®çŽç²ãªãŠãŒã¶ããªãã£ã®èŠ³ç¹ããã®åé¡ã§ãã ionicãå éšã§äœããå®è£ ããŠãæ£åžžã«æ©èœãããããã«ã§ããã°ããã®ã¯ããŒãºãããåé¡ã«é¢ãããã¹ãŠã®ã³ã¡ã³ããšãªã¯ãšã¹ããåæ¢ããã®ã¯çŽ æŽãããããšã§ã:)
ããã¥ã¡ã³ã@ ghenry22ã«PRã
ç§ã®PRãçµ±åãããŸããïŒ ã¢ãŒãã«ããã¥ã¡ã³ãã確èªããŠãã ãã
@ jgw96ãããIonic4ã§è§£æ±ºãããããšãé¡ã£ãŠããŸãã ionic2 RC0ã¯ãã¢ã¯ã·ã§ã³ããªããåçŽãªCSSä¿®æ£ã§ããããšãèãããšå°ãè¡æçã§ãããã¢ãŒãã«ããŒãžã§ãéåžžã®ããŒãžã§ããããã²ãŒã·ã§ã³ã®äœ¿çšã¯æåŸ ã©ããã«æ©èœãããããåªããŠããŸãã åœç¶ã®ããšãªããã
æåŸ ã©ããã«æ©èœããŸãããåé¡ã§ã¯ãããŸããã Ionicããã¥ã¡ã³ãã«ãããè¡ãããã®è©³çŽ°ããããŸãïŒç§ã¯ããã¥ã¡ã³ãã®ãã®éšåãæžããŸããïŒ
@wbhobã¯ãæåŸ ã©ããã«æ©èœããªãããšãé€ããŠã ãã©ãŒã©ã ã®å€æ°ã®ã¹ã¬ããã§ç€ºãããŠããããã«ã ãããšã¹ã¿ãã¯ãªãŒããŒãããŒã®åé¡ã
ããã²ãŒã·ã§ã³ã¯ãããã·ã¥ãããããŒãžãããã£ã³ã°æã«ã¹ããŒã¿ã¹ã倱ãããšãé€ããŠãæåŸ ã©ããã«æ©èœããŸãã ããã¯åçŽãªcssä¿®æ£ã§ããããã以äžè€éãªãã®ã¯å¿ èŠãããŸããã
æšå¥šãããåé¿çããã®ä»ã®åé¿çã«ã¯ãæ°ããããŒãžãéãåã«ãªãŒããŒã¬ã€ãéããããšãå«ãŸããŸãã ãŠãŒã¶ãŒãã¢ãŒãã«ãŸãã¯ä»ã®éåžžã®ããŒãžããæ å ±ã衚瀺ã§ããããã«ãããã®ã§ãããã¯ç§ã®ã¢ããªã«ãšã£ãŠå®è¡å¯èœãªã¢ãããŒãã§ã¯ãããŸãããã¢ãŒãã«ãã衚瀺ããå Žåã¯ãã¢ãŒãã«ã«æ»ãããšãã§ããããã«ããŸãã
ãšã«ãããç§ã¯ããã«å¯Ÿããcssã®ã¿ã®ä¿®æ£ããå æ¥ãã°ã«èšé²ãããä»ã®åé¡ã®1ã€ã«æçš¿ããŸãããããã«ãããéã¢ãŒãã«èšå®ã®å Žåãšåãããã«ãæšæºã®ã€ãªã³ããŒãžã¹ã¿ã€ã«ãé©çšããã ãã§å®å šã«è§£æ±ºãããŸããã
ãããè¡ãé©åãªæ¹æ³ã¯ãã¢ãŒãã«å ã«èªå·±å®çµåã®ããã²ãŒã·ã§ã³ã€ã³ã¹ã¿ã³ã¹ãäœæããããšã§ãã ããªãã®æå³ã¯è¿œå ã®ããŒãžã«ç§»åããããšã§ãããnavCtrl.pushãåŒã³åºããšãäºæ³ã©ãããã«ãŒãããã²ãŒã·ã§ã³ã¹ã¿ãã¯ã«å¯ŸããŠå®è¡ãããŸãã ãããé©åã«è¡ããããã²ãŒã·ã§ã³ã¹ã¿ãã¯ãã¢ãŒãã«å°çšã«ãããšãæ£ããæ©èœããŸãã
ã¯ããããã¯ç¹å®ã®ã·ããªãªã§ãããè¡ãæ¹æ³ã§ãã ãŠãŒã¹ã±ãŒã¹ã§ãéããŠãããªãŒããŒã¬ã€ïŒã¢ãŒãã«/ããããªãŒããŒãªã©ïŒãéããŠãããããŒãžãéããšä»®å®ããŸãã ãã®ã·ããªãªã§ã¯ãã¯ããããªããèšã£ãããšãšãnavã³ã³ãããŒã©ãŒã®Ionicã³ã³ããŒãã³ãã®ããã¥ã¡ã³ãã«ç€ºãããŠããããšã¯æ£åžžã«æ©èœããŸãã
éããŠããã¢ãŒãã«ãéããããããŸãããè¿œå æ å ±ã衚瀺ãããããŒãžã«ç§»åã§ããããã«ããŸããå®äºãããã[æ»ã]ãã¯ãªãã¯ããŠããŒãžãéããã¢ãŒãã«ã«æ»ããŸãã ãã®ã·ããªãªã¯ãåç §ããããã¥ã¡ã³ãã§ã¯ã«ããŒãããŠããŸããã
2çªç®ã®ã·ããªãªã§ã¯ããã¹ãŠãæ©èœçã«å®å šã«æ©èœããŸãã Androidã§ã¯ãã¹ãŠãåé¡ãªãåäœããŸãã å¯äžã®åé¡ã¯ãIOSã§ã¯ããªãŒããŒã¬ã€ããããã·ã¥ããããšãã«ãããã·ã¥ãããããŒãžã«æ£ããcssã¯ã©ã¹ã®ã¿ãé©çšãããªãããšã§ãã ããã«ã¯ç°¡åãªCSSä¿®æ£ããããŸãã
ãã©ããŒãapp.scssã«è²Œãä»ããã ãã§ãã¢ãŒãã«ããŒãžãŸãã¯å¥ã®éåžžã®ããŒãžããããã·ã¥ããããã©ããã«é¢ä¿ãªããæ£ããã¯ã©ã¹ãããŒãžã«é©çšãããããã«ãªããŸãã
ããã§ãäž¡æ¹ã®ã·ããªãªãããŸãæ©èœããŸãã
1ïŒãªãŒããŒã¬ã€ãéããŠæ°ããããŒãžãããŒãããå Žåã¯ãnavcontrollerããã¥ã¡ã³ãã®ã¡ãœããã䜿çšããŸãã
2ïŒãªãŒããŒã¬ã€ãéããŠæ°ããããŒãžãããŒãããããªãå Žåã¯ãæ»ãããšãã§ãããœãŒã¹ãªãŒããŒã¬ã€ãåŒãç¶ã䜿çšã§ããŸãã以äžã®cssãå«ããã ãã§ãã¬ã€ã¢ãŠãã®åé¡ã解決ãããŸãã
// handle top padding disappearing in modals
<strong i="12">@media</strong> only screen and (max-width: 767px){
.ios > .ion-page > ion-header > .toolbar.statusbar-padding:first-child {
padding-top: calc(20px + 4px);
padding-top: calc(constant(safe-area-inset-top) + 4px);
padding-top: calc(env(safe-area-inset-top) + 4px);
min-height: calc(44px + 20px);
min-height: calc(44px + constant(safe-area-inset-top));
min-height: calc(44px + env(safe-area-inset-top));
}
}
@ ghenry22ããªãã¯ééã£ãŠãããšæããŸãã Ionicã¢ããªã±ãŒã·ã§ã³ã§æšå¥šãœãªã¥ãŒã·ã§ã³ã䜿çšããŠããŸãããã¢ãŒãã«ã¯åŽäžãããŸããã æ°ããããŒãžãã¢ãŒãã«ã¹ã¿ãã¯ã«ããã·ã¥ãããŠãŒã¶ãŒã[æ»ã]ãã¿ãããããšã¢ãŒãã«ã«æ»ããŸãã
æšå¥šããã解決çã§ãã®åäœãèŠãããªãå Žåã¯ãã¢ããªã«äœããã®ãã°ããããšæããŸãã ããç§ãããªããªããStackOverflowã®è³ªåãéããŠãããã°ãè©Šã¿ãŸãã ããã«ãã誰ããããªãããããç解ããã®ãæäŒã£ãŠãããã§ãããã
ãã®æ©èœã¯ãã§ã«Ionicã«ãããäžè¬çãªäœ¿çšã®ããã«ååã«ææžåãããŠããããããã®åé¡ã¯é©åãªå Žæã§ã¯ãããŸããã
@zmbc https://ionicframework.com/docs/api/navigation/NavController/
ãªãŒããŒã¬ã€ããããã²ãŒãããããã®ããã«ããããã¥ã¡ã³ãã¯ã次ã®ããŒãžã«ããã²ãŒãããåã«dismissïŒïŒãåŒã³åºãããŠããããšã瀺ããŠããŸãã ããã¯ç§ãèšåããŠãããã®ã§ãã
å€ãPRãã°ã調ã¹ãŠã¿ããšã
ããã§ããæ£ããCSSã¯ã©ã¹ãïŒAndroidã®ããã«ïŒé©çšãããŠããå Žåã¯ãåé¿çããŠãŒã¶ãŒããã®è¿œå ã³ãŒãã¯å¿ èŠãããŸããã確ãã«ãããã¯æãŸããçµæã§ããããïŒ
@ ghenry22ç§ã¯ãããããžã§ã¯ãã«å¿ ãã©ãããã¥ã¡ã³ãã®ç掻ã§ã¯ãªããã ãã©ãç§ã¯ïŒåœŒããã«ããã§ããããã@wbhobã®å€æŽããã¯ãååšããŠããããšãããªããããŠããæ£ãããšæãModalController ããªãããNavController ïŒã
åã«
ãã®ã¢ãããŒããããã¯æããã«Ionicã®åé¡ã§ã¯ãããŸããã
@zmbcã¯ãããã²ãŒã·ã§ã³ã«äœ¿çšããã
CSSããããŸãã§ããããšã«åæããŸãããããã¯ãéåžžããã·ã¥ããããšãã«ããŒãžã«é©çšãããæšæºã®ã€ãªã³CSSã§ããã€ãªã³ã«å€§ããªå€æŽããã£ãå ŽåïŒV4ãç»å Žãããªã©ïŒãåäœãåæ¢ããããåé¡ãåŒãèµ·ããããããå¯èœæ§ãããããšã«åæããŸãã ïŒããããIonicã®iOSãã©ãããã©ãŒã ã«åœ±é¿ãäžãããã°ãšããŠä¿®æ£ããå¿ èŠãããçç±ã§ããããã«ãããä¿®æ£ãé©çšããå¿ èŠããªããªããŸãã
ãã®åé¡ã¯Androidã«ã¯ååšãããå€æŽãªãã§å®å šã«æ©èœããŸãã ãããã£ãŠãããã¯ãCSSã¯ã©ã¹ãé©çšããã€ãªã³ã«é¢ãããã©ãããã©ãŒã åºæã®ãã°ã®ããã§ãã
ç§ã¯ãŸã 倧ç»é¢ããã€ã¹ã§ããããã¹ãããŠããªãããšãèªããŸãããããŠããã§äœãä»ã®ãã®ãå¿ èŠã§ãããããããŸãããç§ã¯ãããèŠãŠãããŸãã
ããã¥ã¡ã³ããã倱ããããœãŒã¹ãã¡ã€ã«ã®ããããŒã«ã³ã¡ã³ããšããŠã®ã¿ååšãã解決çãããããšãããããŸãã ãã®ãœãªã¥ãŒã·ã§ã³ãå ¬åŒã®ããã²ãŒã·ã§ã³ã³ã³ãããŒã©ãŒã®ããã¥ã¡ã³ããã¢ãŒãã«ããã®ããã²ãŒãã®ã»ã¯ã·ã§ã³ã«åŸ©å ã§ããå Žåã¯ãå°ãªããšãããã¥ã¡ã³ãåããããœãªã¥ãŒã·ã§ã³ããããIonicããã¥ã¡ã³ããèªãã§ãã人ã¯ããã¥ã¡ã³ãã«ç°¡åã«ã¢ã¯ã»ã¹ã§ããŸãã
ã©ã¡ãã®ã¢ãããŒããæ£ãããééã£ãŠãããã«ã€ããŠã¯æããã«åæããŸããããã®ããããããè¡ãããã®å ¬åŒã«æšå¥šãããæ¹æ³ïŒãããäœã§ããïŒãããã¥ã¡ã³ãã«é©åã«è¿œå ãããŠããéããããã¯å¥ã«ããŠãããã§ååã§ãã
åé¡ãããããšãïŒ ãã®åé¡ã¯ãå ã®åé¡ã«é¢é£ããªãã³ã¡ã³ããé²ãããã«ããã¯ãããŠããŸãã ãããææ°ããŒãžã§ã³ã®Ionicã§åŒãç¶ãåé¡ã«ãªãå Žåã¯ãæ°ããåé¡ãäœæãããã³ãã¬ãŒããå®å šã«å ¥åãããŠããããšã確èªããŠãã ããã
æãåèã«ãªãã³ã¡ã³ã
ã€ãªã³è§åºŠ3.3.0ã«ã¯ãŸã ååšããŸãã ãããä¿®æ£ããæ¹æ³ã¯ãããŸããïŒ