如何将离子选项卡放在屏幕底部?


97

我创建了一个简单的ionic-tabs,将我的图标显示在屏幕顶部。我试图将其包裹在离子脚注栏中,以使其无法放置在屏幕底部。当我这样做时,这些标签会消失。我应该如何完成自己想要的外观?

<ion-footer-bar>
    <ion-tabs class="tabs-icon-only tabs-stable">
    ...
    </ion-tabs>
</ion-footer-bar>

Answers:


175

由于Ionic 的beta 14http://blog.ionic.io/the-final-beta/),现在有一些配置变量默认为其平台值,这意味着它们将尝试根据平台进行操作他们建立在。对于标签页,对于iOS,默认值是显示在底部,而Android显示在顶部。

您可以通过tabs.position$ionicConfigProviderconfig函数内的中设置函数,轻松地“硬设置”所有平台的位置,如下所示:

MyApp.config(['$ionicConfigProvider', function($ionicConfigProvider) {

    $ionicConfigProvider.tabs.position('bottom'); // other values: top

}]);

您可以在此处查看文档


1
不,这是行不通的。在浏览器中,标签位于底部,在Android中-位于顶部
Toolkit

3
根据Ionic文档,默认情况下,@ Toolkit Android选项卡应该呈现在最上面。Android准则是避免使用底部栏,因为操作系统默认操作位于底部:developer.android.com/design/patterns/pure-android.html
Daniel Rochetti 2015年

@Toolkit我已经编辑了答案以修复平台默认信息。如果要自定义它,则上面的代码是正确的方法。但是,我建议您避免更改平台默认值,因为它们倾向于遵循平台准则。=)
Daniel Rochetti 2015年

是否可以使用此方法或其他方法来具有底部和顶部选项卡?我尝试为页脚创建另一个状态,但是由于某种原因,即使我在浏览器的“网络”标签中看到了该状态,也无法呈现在屏幕上。有什么想法吗?谢谢
Bill Pope

65

要将ionicFramework标签放置在android设备的屏幕底部,只需打开app.js文件,然后在angular.module下添加以下代码行:

.config(function($ionicConfigProvider) {
    $ionicConfigProvider.tabs.position('bottom');
})

希望这会有所帮助。


如何在屏幕顶部和底部获得标签?
Syed丹麦人阿里

我想你可以创建一个在底部和顶部的标签单独的模板
艾哈迈德娜。

哦是的 我知道了。我是这个离子世界的新手。
Syed丹麦人阿里

这应该标记为答案。这很简单,很直截了当,你让我赞成...
Mbithy Mbithy

虽然将android选项卡设置为底部,但按照您的代码仍可以正常工作,但是在按下键盘时,该选项卡也随选项卡一起显示。按下键盘时是否可以在底部将其设置为稳定。
Suthan M


7

将其放在app.js中即可完成工作。

.config(function($ionicConfigProvider) {
    $ionicConfigProvider.tabs.position('bottom');
})

Ionic会自动考虑平台配置,以调整诸如使用哪种过渡样式以及选项卡图标应显示在顶部还是底部之类的内容。

例如,对于选项卡,对于iOS,默认设置是显示在底部,而Android显示在顶部。

注意1应该注意的是,当平台不是iOS或Android时,它将默认为iOS

注意2 如果您使用桌面浏览器进行开发,它将采用iOS默认配置


5

在app.js文件中,您需要将$ ionicConfigProvider注入.config模块,并添加$ ionicConfigProvider.tabs.position('bottom')

.config(function($stateProvider, $urlRouterProvider,$ionicConfigProvider) {

 $ionicConfigProvider.tabs.position('bottom'); //top

  // Ionic uses AngularUI Router which uses the concept of states
  // Learn more here: https://github.com/angular-ui/ui-router
  // Set up the various states which the app can be in.
  // Each state's controller can be found in controllers.js
  $stateProvider

  // setup an abstract state for the tabs directive
    .state('tab', {
    url: '/tab',
    abstract: true,
    templateUrl: 'templates/tabs.html'
  })
.
.
.
  // if none of the above states are matched, use this as the fallback
  $urlRouterProvider.otherwise('/tab/dash');

});

3

如何在Ionic 2中将离子选项卡放置在屏幕底部

对于当前版本的ionic 2.0.0-beta.10。

在app.ts中:

ionicBootstrap(MyApp, [], {
  tabbarPlacement: "bottom"
});

请参阅配置

对于即将发布的离子2.0.0-beta.11

在app.ts中:

ionicBootstrap(MyApp, [], {
  tabsPlacement: "bottom" 
});

设定档


2

Ionic 2和Ionic 3+的更新:

您可以通过以下两种方法更改标签栏的位置:

方法1:使用的tabsPlacement专有名词<ion-tabs>

<ion-tabs  tabsPlacement='bottom' >
    <ion-tab [root]="rootTab" tabTitle="Home"></ion-tab> 
</ion-tabs>

方法2:更改配置 app.module.ts

@NgModule({
  imports: [
    IonicModule.forRoot(MyApp, {
      tabsPlacement : 'bottom'
    })
  ]
})

查看文件


细分组件有什么远程相似的地方吗?我可以不用担心CSS,将其放到底部,但是将边框放在顶部的按钮上,则有很多循环可以跳过,并且感觉很怪异,所以我想知道是否有一个更简单的解决方案,但是没有遇到在文档中。实际上,段文档很短.... ionicframework.com/docs/api/components/segment/Segment
yogibimbi

对自我的回答:ion-segment-button.segment-button { border-top-style: solid; border-bottom-width: 0; }这是可行的,但是,对于border-top-width,除了在元素的style-attribute中将其显式设置为2px之外,我没有找到其他方法。总是用3px覆盖它,即使将其设置在Chrome中的元素上,以及在样式表中使用!important似乎也不是最重要的。
yogibimbi

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.