İyonik sekmeler ekranın altına nasıl yerleştirilir?


97

Simgelerimi ekranın üst kısmında gösteren basit bir iyonik sekmeler oluşturdum. Başarısız bir şekilde ekranın altına yerleştirilmesi için iyonik bir altlık çubuğuna sarmaya çalıştım. Bunu yaptığımda sekmeler kayboluyor. İstediğim görünümü nasıl elde etmeliyim?

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

Yanıtlar:


175

Ionic'in beta 14'ünden beri ( http://blog.ionic.io/the-final-beta/ ), artık platform değerlerine varsayılan olan bazı yapılandırma değişkenleri var, bu da platforma göre davranmaya çalışacakları anlamına geliyor. üzerine inşa edilmişlerdir. Sekmeler söz konusu olduğunda, iOS için varsayılan, altta ve Android'in üstte görüntülenmesidir.

Yapılandırma işlevinizin içindeki tabs.positionişlevi şu şekilde ayarlayarak tüm platformlar için konumu kolayca "sabit ayarlayabilirsiniz" $ionicConfigProvider:

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

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

}]);

Belgeleri buradan kontrol edebilirsiniz


1
hayır çalışmıyor. Tarayıcı sekmelerinde altta, Android'de - üstte
Araç Seti

3
@Toolkit Android sekmelerinin, Ionic belgelerine göre varsayılan olarak en üstte görüntülenmesi gerekiyor. En altta bulunan işletim sistemi varsayılan eylemleri nedeniyle Android yönergeleri alt çubukların kullanılmasından kaçınılmalıdır: developer.android.com/design/patterns/pure-android.html
Daniel Rochetti

@Toolkit Platform varsayılan bilgilerini düzeltmek için cevabı zaten düzenledim. Özelleştirmek istiyorsanız, yukarıdaki kod doğru yoldur. Bununla birlikte, platform varsayılanlarını değiştirmekten kaçınmanızı öneririm, bunlar genellikle platform yönergelerini takip etme eğilimindedirler. =)
Daniel Rochetti

Bu veya başka bir yöntemi kullanarak alt ve üst sekmelere sahip olmanın bir yolu var mı? Altbilgim için başka bir durum oluşturmayı denedim, ancak bazı nedenlerden dolayı tarayıcımdaki ağ sekmesinde görmeme rağmen ekranda görüntülenmiyor. Bununla ilgili herhangi bir fikrin var mı? Teşekkürler
Bill Pope

65

Android cihazlarda ionicFramework sekmelerini ekranın altına yerleştirmek için app.js dosyanızı açmanız ve angular.module kod aşağıdaki satırları ekleyin:

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

Umarım bu yardımcı olur.


Ekranın hem üstünde hem de altında sekmeler nasıl elde edilir?
Syed Danish Ali

Sanırım alttaki ve üstteki sekmeler için ayrı şablon oluşturabilirsin
Ahmed Na.

Oh evet. Anladım. Bu iyonik dünyasında bir acemiyim.
Syed Danish Ali

Bu cevap olarak işaretlenmelidir. Basit ve doğrudan
konuya, oyumu aldınız

Android sekmesini alta ayarlarken, kodunuza göre iyi çalışıyor, Ancak klavyeye basarken sekme de sekme ile birlikte görünüyor. Klavyeye basarken altta sabitlemek için herhangi bir seçenek var mı?
Suthan M


7

Bunu app.js dosyanıza yerleştirmek işi yapar.

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

Ionic, hangi geçiş stilinin kullanılacağı ve sekme simgelerinin üstte mi yoksa altta mı gösterileceği gibi şeyleri ayarlamak için otomatik olarak platform yapılandırmalarını dikkate alır.

Örneğin, sekmeler söz konusu olduğunda, iOS için varsayılan, altta ve Android'in üstte görüntülenmesidir.

Not 1 : Bir platform iOS veya Android olmadığında, varsayılan olarak iOS'a geçeceği unutulmamalıdır.

Not 2 : Bir masaüstü tarayıcısında geliştiriyorsanız, iOS varsayılan yapılandırmalarını alacaktır.


5

App.js dosyasının yan tarafında, .config modülüne $ ionicConfigProvider'ı enjekte etmeniz ve $ ionicConfigProvider.tabs.position ('bottom') eklemeniz gerekir.

.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

İyonik sekmeler Ionic 2'de ekranın altına nasıl yerleştirilir

Mevcut sürüm ionic 2.0.0-beta.10 için.

App.ts içinde:

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

Yapılandırmaya bakın

Yakında piyasaya sürülecek ionic 2.0.0-beta.11

App.ts içinde:

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

Yapılandırma


2

Ionic 2 ve Ionic 3+ için güncelleme:

Sekme çubuğu konumunu değiştirmek için 2 yönteminiz vardır:

Yöntem 1: tabsPlacementbir propertive<ion-tabs>

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

Yöntem 2: Yapılandırmayı değiştir app.module.ts

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

Dokümanlara bakın


Segment bileşeni için uzaktan benzer bir şey var mı? CSS ile en alta koyabilirim, endişelenmeden, ancak düğmelere kenarlık koymak o zaman atlayacak çok sayıda döngüye sahip ve oldukça huysuz, bu yüzden daha kolay bir çözüm olup olmadığını merak ediyorum, ancak hiçbiriyle karşılaşmadım belgelerde. Aslında, Segment dokümanı oldukça kısa .... ionicframework.com/docs/api/components/segment/Segment
yogibimbi

ion-segment-button.segment-button { border-top-style: solid; border-bottom-width: 0; }Kendime cevap: hile yapıyor, ancak border-top-width için element üzerindeki style-niteliğinde açıkça 2px olarak ayarlamaktan başka bir çare bulamadım. Başka bir şey her zaman 3px ile üzerine yazar, hatta onu Chrome'da elementin üzerine ve! ​​Stil sayfasında önemli olarak ayarlasa bile bunun üstüne gelmez.
yogibimbi

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

Lütfen yalnızca kod yanıtlarından kaçının ve çözümünüzü açıklayın.
Micho
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.