画面の下部にイオンタブを配置するにはどうすればよいですか?


97

画面上部にアイコンを表示するシンプルなionicタブを作成しました。それを画面下部に配置するために、それをionic-footer-barで包んでみましたが、うまくいきませんでした。そうするとタブが消えます。私が望む外観をどのように達成すべきですか?

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

回答:


175

Ionic のベータ14http://blog.ionic.io/the-final-beta/)以降、いくつかの設定変数がプラットフォームの値にデフォルト設定されています。つまり、プラットフォームに従って動作しようとします。それらが構築されていること。タブの場合、iOSではデフォルトで下部に表示され、上部にAndroidが表示されます。

次のようにconfig関数内のでtabs.position関数を設定することにより、すべてのプラットフォームの場所を簡単に「ハードセット」でき$ionicConfigProviderます。

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

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

}]);

ここでドキュメントを確認できます


1
いいえ、機能しません。ブラウザのタブは下部にあり、Androidの場合-上部
ツールキット

3
Ionicのドキュメントによれば、@ Toolkit Androidのタブはデフォルトで上部に表示されることになっています。Androidのガイドラインがあるため一番下にあるOSのデフォルトのアクションの下のバーを使用しないようにしている:developer.android.com/design/patterns/pure-android.html
ダニエルRochetti

@Toolkitプラットフォームのデフォルト情報を修正するために回答をすでに編集しました。カスタマイズしたい場合は、上記のコードが正しい方法です。ただし、プラットフォームのデフォルトを変更しないことをお勧めします。プラットフォームのガイドラインに従う傾向があります。=)
Daniel Rochetti、2015年

この方法を使用して、下部と上部のタブを作成する方法はありますか?フッターに別の状態を作成しようとしましたが、何らかの理由で、ブラウザーのネットワークタブに表示されていても、画面に表示されません。これについて何か考えはありますか?ありがとう
ビル・ポープ

65

Androidデバイスの画面下部にionicFrameworkタブを配置するには、app.jsファイルを開き、angular.moduleの下に配置します次のコード行を追加します。

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

これがお役に立てば幸いです。


画面の上部と下部の両方にタブを設定するにはどうすればよいですか?
サイドデンマークアリ

下部と上部のタブに別々のテンプレートを作成できると思います
Ahmed Na。

そうそう。わかった。私はこのイオニクスの世界の初心者です。
Syed Danish Ali

これは回答としてマークする必要があります。それは単純で、要点はまっすぐです。あなたは私の賛成票を得ました...
Mbithy Mbithy 2017年

android tabを一番下に設定している間はコードどおりに機能しますが、キーボードを押している間はタブが表示されます。キーボードを押している間、下部で安定させるオプションはありますか?
Suthan M 2017


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"
});

構成を参照

間もなくリリースされるionic 2.0.0-beta.11

app.tsで:

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

構成


2

Ionic 2およびIonic 3+の更新:

タブバーの位置を変更するには、2つの方法があります。

方法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については、要素のスタイル属性で2pxに明示的に設定する以外に手段はありませんでした。それ以外のものは常に3pxでそれを上書きします。それを要素のChromeで設定し、スタイルシートで!importantを設定しても、それを上回らないようです。
ヨギビンビ

1
myapp.config(['$ionicConfigProvider', function($ionicConfigProvider) {
    $ionicConfigProvider.tabs.position('bottom'); // other values: top
}]);

コードのみの回答は避け、解決策を説明してください。
Micho
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.