Ionic 自定义Tab

1.在theme文件夹下新建icons.scss文件,直接贴代码

.ion-tab-icon-base {

  width: 32px;

  height: 32px;

  padding: 4px 4px 2px;

}

.ion-tab-icon-md-base {

  min-width: 0 !important;

  height: 32px;

}

$tabImageName: 'home''contact''message''mine';

@for $i from 1 to 5 {

  //for ios 

  .ion-ios-tab-#{nth($tabImageName, $i)} {

    @extend .ion-tab-icon-base;

    content: url("../assets/imgs/tabs/#{nth($tabImageName, $i)}.svg");

  }

  .ion-ios-tab-#{nth($tabImageName, $i)}-outline {

    @extend .ion-tab-icon-base;

    content: url("../assets/imgs/tabs/#{nth($tabImageName, $i)}_off.svg");

  }

  // for android 

  .tabs-md .tab-button[aria-selected=true] {

    .ion-md-tab-#{nth($tabImageName, $i)} {

      @extend .ion-tab-icon-md-base;

      content: url("../assets/imgs/tabs/#{nth($tabImageName, $i)}.png");

    }

  }

  .tabs-md .tab-button[aria-selected=false] {

    .ion-md-tab-#{nth($tabImageName, $i)} {

      @extend .ion-tab-icon-md-base;

      content: url("../assets/imgs/tabs/#{nth($tabImageName, $i)}_off.png");

    }

  }

}

2.在app文件夹下新建tab是文件夹,里面需要包含四个文件tabs.html,tabs.scss,tabs.ts,tabs.module.ts

3.tabs.html

<ion-tabs #mainTabs>

    <ion-tab [root]="OAHomeRoot" tabTitle="首页" tabIcon="tab-home" [rootParams]="Sign" tabsHideOnSubPages></ion-tab>

    <ion-tab [root]="OAContactRoot" tabTitle="通讯录" tabIcon="tab-contact" [rootParams]="Sign" tabsHideOnSubPages></ion-tab>

    <ion-tab (ionSelect)="clearUnread()" [root]="OAMesssageRoot" tabTitle="消息" tabIcon="tab-message" [rootParams]="Sign" [tabBadge]="messageConut" tabBadgeStyle="danger" tabsHideOnSubPages></ion-tab>

    <ion-tab [root]="OAMineRoot" tabTitle="我的" tabIcon="tab-mine" [rootParams]="Sign" tabsHideOnSubPages></ion-tab>

</ion-tabs>

4.tabs.scss

page-tabs {

    .tabbar {

        box-shadow: 0px 0px 2px 1px #E5E5E5 !important;

        border: 0px !important;

    }

}

5.tabs.ts

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

import { NavController } from 'ionic-angular';

import { Tabs } from "ionic-angular";

import { userHomePage } from '../../pages/user-home/user-home-page/user-home-page';

import { mineHomePage } from '../../pages/mine-home/mine-home-page/mine-home-page';

import { userContactPage } from '../../pages/user-home/user-contact-page/user-contact-page';

import { messageManagePage } from '../../pages/work-home/message-manage-page/message-manage-page';

@Component({

  selector: "page-tabs",

  templateUrl: 'tabs.html'

})

export class TabsPage {

  @ViewChild('mainTabs') tabs: Tabs;

  OAHomeRoot: any = userHomePage;

  OAContactRoot: any = userContactPage;

  OAMesssageRoot: any = messageManagePage;

  OAMineRoot: any = mineHomePage;

  constructor(public navCtrl: NavController) {

  }

}

6.tabs.module.ts

import { NgModule } from '@angular/core';

import { IonicModule } from 'ionic-angular';

import { TabsPage } from "./tabs";

@NgModule({

  imports: [IonicModule],

  declarations: [TabsPage],

  entryComponents: [TabsPage],

  providers: [],

  exports: [IonicModule]

})

export class TabsModule {

}

7.将TabsModule注入到app.module.ts,

app.module.ts如下

import { TabsModule } from './tabs/tabs.module';

@NgModule({

  imports: [

    TabsModule,//tab组件

  ],

  bootstrap: [IonicApp],

  entryComponents: [

    MyApp,

  ],

})

export class AppModule { }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,136评论 0 10
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,659评论 2 45
  • 今天头很炸 从昨天晚上凌晨浑浑噩噩 睡到中午十二点 醒来玩手机 订外卖 吃喝玩乐 没下过床 看起来是再舒服不过的生...
    阿躁阅读 3,671评论 0 0
  • 踌躇不决了三天过后,我今天还是提起了笔。 因为我觉得,写作这条路,我算是迈了进来,好不容易投成了一篇稿子,也结识了...
    我是鱼哔哔阅读 3,541评论 0 1
  • 连续跑步3天,整个人就像散架了一样,全身酸疼,走路都感觉困难,可是6点不到我还是准时醒了,朝夕日历早起打卡,喜马拉...
    芷荣说阅读 1,261评论 0 1