隐藏Ionic 2中子页面中的选项卡

时间:2017-03-13 15:20:58

标签: angular typescript ionic-framework ionic2 ionic3

我尝试隐藏我应用中所有子页面的标签。 我用这个:

<ion-tab [root]="MyPage" tabsHideOnSubPages="true" ...></ion-tab>

当我运行离子发球;它的工作。 但是当我尝试在我的设备上运行它时,我的标签不会隐藏在子页面中,我无法使用它。

有人有想法最终隐藏我设备中的标签吗?

[更新] 在我的子页面中,我有一个谷歌地图。如果我删除它,我就不再有问题了。

子页面.html:

<ion-header>
  <c-header></c-header>
</ion-header>

<ion-content>
  <div id="map"></div>
</ion-content>

子页面.css:

#map {
  height: 50%;
}

子页面.ts:

import { Component } from '@angular/core';
import { NavController, Platform } from 'ionic-angular';
import { GoogleMap, GoogleMapsEvent, GoogleMapsLatLng } from 'ionic-native';

/*
  Generated class for the DetailsMedicalEvent page.

  See http://ionicframework.com/docs/v2/components/#navigation for more info on
  Ionic pages and navigation.
*/
@Component({
  selector: 'page-details-medical-event',
  templateUrl: 'details-medical-event.html'
})
export class DetailsMedicalEventPage {

  map: GoogleMap;

  constructor(public navCtrl: NavController, public platform: Platform) {
    platform.ready().then(() => {
      this.loadMap();
    });
  }

  loadMap(){

    let location = new GoogleMapsLatLng(-34.9290,138.6010);

    this.map = new GoogleMap('map', {
      'backgroundColor': 'white',
      'controls': {
        'compass': true,
        'myLocationButton': true,
        'indoorPicker': true,
        'zoom': true
      },
      'gestures': {
        'scroll': true,
        'tilt': true,
        'rotate': true,
        'zoom': true
      },
      'camera': {
        'latLng': location,
        'tilt': 30,
        'zoom': 15,
        'bearing': 50
      }
    });

    this.map.on(GoogleMapsEvent.MAP_READY).subscribe(() => {
      console.log('Map is ready!');
    });
  }
}

我真的需要一张地图。有人已经有这个问题吗?

3 个答案:

答案 0 :(得分:23)

您还可以尝试在UIStackView文件中设置tabsHideOnSubPages配置属性,如下所示:

app.module.ts

来自 Ionic docs

  

... imports: [ IonicModule.forRoot(MyApp, { // Tabs config tabsHideOnSubPages: true, ... }) ] ... tabsHideOnSubPages

     

是否隐藏子页面上的选项卡。如果是真的,它就不会   显示子页面上的选项卡。

答案 1 :(得分:5)

在app.module.ts中添加“tabsHideOnSubPages:true”对我有用。 (离子2)

答案 2 :(得分:1)

要完全灵活地隐藏和显示标签,您还可以使用如下所示的CSS类:

ion-tabs.hidden div.tabbar {
    display: none
}

在tabs.ts中,您可以使用布尔变量来表示是否应隐藏选项卡。

public hideTabs:boolean = false;

在tabs.html中,当变量为true时,将ngClass添加到ion-tabs以应用hideTabs样式:

<ion-tabs [ngClass]="{'hidden': hideTabs}">

您可以在任何函数f.e中切换hideTabs变量。在导航到子页面的函数内部,也在离子的ionViewWillEnter()函数中。