1
votes

I’m including inside an ion-toolbar the following code but unfortunately, the buttons are not centralized. I tried to find another way and basically, I added the ion-buttons inside an ion-row/ion-col tags as below and now the buttons are centralized but when resizing based on Galaxy S5 or iPhone 5s I had problems with the responsive behavior.

I'm using Ionic 4.

=> ionic info

Ionic:

   ionic (Ionic CLI)             : 4.12.0 (/usr/local/lib/node_modules/ionic)
   Ionic Framework               : @ionic/angular 4.1.2
   @angular-devkit/build-angular : 0.13.6
   @angular-devkit/schematics    : 7.2.4
   @angular/cli                  : 7.3.6
   @ionic/angular-toolkit        : 1.4.1

Cordova:

   cordova (Cordova CLI) : 9.0.0
   Cordova Platforms     : android 8.0.0, browser 6.0.0, ios 5.0.0
   Cordova Plugins       : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 3.1.2, (and 6 other plugins)

System:

   ios-deploy : 1.9.4
   ios-sim    : 8.0.0
   NodeJS     : v8.12.0 (/usr/local/bin/node)
   npm        : 6.9.0
   OS         : macOS Mojave
   Xcode      : Xcode 10.2 Build version 10E125

The code is:

<ion-header>
    <ion-toolbar>
        <ion-title align="center" [title]="quota">{{quota}} pontos</ion-title>
    </ion-toolbar>
    <ion-toolbar>
        <ion-item class="calendar">
            <ion-row>
                <ion-col align-items-center="true">
                    <ion-buttons>
                        <ion-button class="btncalendar" (click)="previous()">
                            Anterior
                            <ion-icon slot="start" name="rewind"></ion-icon>
                        </ion-button>
                        <ion-button class="btncalendar">
                            <ion-icon slot="end" name="calendar"></ion-icon>
                            <ion-datetime #myPicker display-format="DD/MM/YYYY" [value]="screenDateTime"
                                          (ionChange)="updateDate(myPicker.value)" [(ngModel)]="value"></ion-datetime>
                        </ion-button>
                        <ion-button class="btncalendar" (click)="next()">
                            Próximo
                            <ion-icon slot="end" name="fastforward"></ion-icon>
                        </ion-button>
                    </ion-buttons>
                </ion-col>
            </ion-row>
        </ion-item>

I tried to include slot as described in the code below, but the buttons disappeared.

<ion-header>
                <ion-toolbar>
                    <ion-title align="center" [title]="quota">{{quota}} pontos</ion-title>
                </ion-toolbar>
                <ion-toolbar>
                    <ion-item class="calendar">
                        <ion-row>
                            <ion-col align-items-center="true">
                                <ion-buttons slot="primary">
                                    <ion-button class="btncalendar" (click)="previous()">
                                        Anterior
                                        <ion-icon slot="start" name="rewind"></ion-icon>
                                    </ion-button>
                                    <ion-button class="btncalendar">
                                        <ion-icon slot="end" name="calendar"></ion-icon>
                                        <ion-datetime #myPicker display-format="DD/MM/YYYY" [value]="screenDateTime"
                                                      (ionChange)="updateDate(myPicker.value)" [(ngModel)]="value"></ion-datetime>
                                    </ion-button>
                                    <ion-button class="btncalendar" (click)="next()">
                                        Próximo
                                        <ion-icon slot="end" name="fastforward"></ion-icon>
                                    </ion-button>
                                </ion-buttons>
                            </ion-col>
                        </ion-row>
                    </ion-item>
                    <ion-item class="header">
                        <ion-grid>

I tried slot primary, secondary, end and start.

I just want to centralize the buttons and get the responsive behavior properly when using other small devices as Sansing S5 or iPhone 5S.

1

1 Answers

2
votes

justify-content-center will horizontally center your buttons.

<ion-buttons justify-content-center>
    <ion-button class="btncalendar">
        Anterior
        <ion-icon slot="start" name="rewind"></ion-icon>
    </ion-button>
    <ion-button class="btncalendar">
        <ion-icon slot="end" name="calendar"></ion-icon>
        <ion-datetime #myPicker display-format="DD/MM/YYYY"></ion-datetime>
    </ion-button>
    <ion-button class="btncalendar">
        Próximo
        <ion-icon slot="end" name="fastforward"></ion-icon>
    </ion-button>
</ion-buttons>