ionic2 使用自定义图片作为tabbar的icon

在tabs.html中

<ion-tabs tabsPlacement="bottom">
  <ion-tab [root]="tab1Root" tabTitle="tab1" tabIcon="tab-tab1"></ion-tab>
  <ion-tab [root]="tab2Root" tabTitle="tab2" tabIcon="tab-tab2"></ion-tab>
  <ion-tab [root]="tab3Root" tabTitle="tab3" tabIcon="tab-tab3"></ion-tab>
</ion-tabs>


添加tabs.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: 'tab1' 'tab2' 'tab3';
@for $i from 1 to 4 {
  //for ios
  .ion-ios-tab-#{nth($tabImageName, $i)} {
    @extend .ion-tab-icon-base;
    content: url("../assets/images/tabs/#{nth($tabImageName, $i)}_choosed.png");
  }
  .ion-ios-tab-#{nth($tabImageName, $i)}-outline {
    @extend .ion-tab-icon-base;
    content: url("../assets/images/tabs/#{nth($tabImageName, $i)}.png");
  }

  // for android
  .tabs-md .tab-button[aria-selected=true] {
    .ion-md-tab-#{nth($tabImageName, $i)} {
      @extend .ion-tab-icon-md-base;
      content: url("../assets/images/tabs/#{nth($tabImageName, $i)}_choosed.png");
    }
  }
  .tabs-md .tab-button[aria-selected=false] {
    .ion-md-tab-#{nth($tabImageName, $i)} {
      @extend .ion-tab-icon-md-base;
      content: url("../assets/images/tabs/#{nth($tabImageName, $i)}.png");
    }
  }
}

ios的比较简单,只要直接定义.ion-ios-tab-tabX以及.ion-ios-tab-tabX-outline即可。

android则需要设置.tabs-md .tab-button下不同属性的.ion-md-tab-tabX

其中,tabX表示tab1,tab2,tab3等,具体的名字根据自己喜好。

编译生成的css如下

.ion-ios-tab-tab1 {
  content: url("../assets/images/tabs/tab1_choosed.png");
}

.ion-ios-tab-tab1-outline {
  content: url("../assets/images/tabs/tab1.png");
}

.tabs-md .tab-button[aria-selected=true] .ion-md-tab-tab1 {
  content: url("../assets/images/tabs/tab1_choosed.png");
}

.tabs-md .tab-button[aria-selected=false] .ion-md-tab-tab1 {
  content: url("../assets/images/tabs/tab1.png");
}

以上样例所有图片均放在src/assets/images/tabs目录下,并以tabX.png和tabX_choosed.png命名。

如果亲们有更好的方法可以告知,谢谢!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值