Ionic框架根据运行应用程序(Android或iOS)的平台自定义其功能外观,但我知道它也具有Ionic特有的第三外观。
我的问题是,有没有办法指定特定功能的外观和方式?就像我要Popovers看起来像Android样式,而Action Sheets看起来像iOS样式一样,都在同一个应用程序中,而不论应用程序是在哪个平台上构建的?
必须有一种方法,否则就没有东西的离子风格,例如以下示例:http://codepen.io/ionic/pen/GpCst
我已经尝试过像示例一样的setPlatform函数,但没有成功。
$scope.setPlatform = function(p) {
document.body.classList.remove('platform-ios');
document.body.classList.remove('platform-android');
document.body.classList.add('platform-' + p);
$scope.demo = p;
}
最佳答案
有几种方法可以执行这样的操作,但是应该清楚的是,Ionic为平台特定的设计提供了开箱即用的支持。在为一个组件选择iOS特定样式而为另一个组件选择Android样式时,您会遇到一些困难的情况。
某些组件具有配置选项。
查看http://ionicframework.com/docs/api/provider/ $ ionicConfigProvider /,您会看到一些可以全局配置的组件,例如选项卡,导航栏,表单元素,以及将来可能还会配置的其他组件。
您可以定位CSS以按平台修改组件
您已经看到根据设备而对主体应用了platform-ios
或platform-android
类。您可以根据视图手动更改类。但是,它应用于主体,因此整个当前视图将必须采用相同的ios或android样式。更好的是,您可以编写CSS来覆盖现有样式,以使其适合您的感觉(Ionic鼓励这样做)。如果您修改Sass变量并使用Sass构建功能重建Ionic CSS,则还可以控制某些事情。
有选择地使用组件
您可以在控制器中检测平台,以确定是否应在Android或iOS的操作表上使用弹出框。 http://ionicframework.com/docs/api/utility/ionic.Platform/控制器中的逻辑条件是,首先检查平台,然后触发适当的组件。
这涵盖了我遇到的主要方式。当然,您可以将自己的CSS定位为使用自己的设计覆盖默认值,而无需考虑平台设计的连续性功能。如果您需要一些示例和更多细节,这些内容将在我的书Ionic in Action中进行介绍。
关于javascript - 如何指定 ionic 特征外观样式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29855614/