参考文档:https://segmentfault.com/a/1190000008626945
每个平台都有对应的模式:
-
md (Android)
-
ios (iOS)
-
wp (Windows Phone)
-
md (Core - used for any platform other than the above)
我们也可以通过 Ionic 的 Config API 方便地配置 mode 下可配置字段的值,具体如下:
imports: [
IonicModule.forRoot(MyApp, {
backButtonText: "",
backButtonIcon: "md-arrow-back",
iconMode: "md",
modalEnter: "modal-md-slide-in",
modalLeave: "modal-md-slide-out",
pageTransition: "md"
});
]
以上的配置信息,用于设置在 iOS 平台下,App 的风格采用 Android material 设计。
我们也可以单独针对特定的平台,进行配置:
imports: [
IonicModule.forRoot(MyApp, {
platforms: {
android: {
backButtonText: "",
backButtonIcon: "md-arrow-back",
iconMode: "md",
modalEnter: "modal-md-slide-in",
modalLeave: "modal-md-slide-out",
pageTransition: "md",
},
ios : {
backButtonText: "Previous",
backButtonIcon: "ios-arrow-back",
iconMode: "ios",
modalEnter: "modal-ios-slide-in",
modalLeave: "modal-ios-slide-out",
pageTransition: "ios",
}
}];
此外,通过 Config API 提供的方法,我们可以在 TypeScript classes 中,方便的设置特定平台下的配置信息,具体如下:
config.set('ios', 'textColor', '#AE1245');
该方法接受三个参数:
-
platform (optional - 'ios' or 'android', if omitted this will apply to all platforms)
-
key (optional - The name of the key used to store our value I.e. 'textColor')
-
value (optional - The value for the key I.e. '#AE1245')
通过 Config API 提供的 get 方法获取配置的值:
config.get('textColor');
我们也能够在组件层级,方便地配置组件,如通过 ion-tabs 的输入属性 tbasPlacement 设置 ion-tabs 组件的显示位置:
<ion-tabs tabsPlacement="bottom">
<ion-tab tabTitle="Dash" tabIcon="pulse" [root]="tabRoot"></ion-tab>
</ion-tabs>
配置指定平台的样式
Ionic 使用 mode 来定义组件的外观。每个平台都有默认的 mode , 任何 mode 下的样式信息,都能被我们覆写。我们可以在 ion-app 中指定mode的值,具体如下:
<ion-app class="md">
覆写 md 模式下的样式
.md button {
text-transform: capitalize;
}
覆写 md 下 Sass 变量的值
$button-md-border-radius: 8px;
// Ionic Sass
// ---------------------------------
@import "ionic";
动态的设置组件的属性
<ion-list [attr.no-lines]="isMD ? '' : null"