Як розмістити іонні вкладки в нижній частині екрана?


97

Я створив просту іонну вкладку, яка показує мої піктограми вгорі екрана. Я намагався загорнути його в іонно-нижній колонтитул, щоб його розмістити в нижній частині екрана без успіху. Коли я це роблю, вкладки зникають. Як я повинен досягти вигляду, який я хочу?

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

Відповіді:


175

Оскільки бета-версія Ionic ( http://blog.ionic.io/the-final-beta/ ), існують деякі змінні конфігурації, які тепер за замовчуванням відповідають значенню їх платформи, це означає, що вони намагатимуться вести себе відповідно до платформи що вони побудовані на. Що стосується вкладок, для iOS за замовчуванням відображається знизу, а Android - зверху.

Ви можете легко «встановити жорстке» місцеположення для всіх платформ, встановивши tabs.positionфункцію $ionicConfigProviderвсередині вашої функції конфігурації таким чином:

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

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

}]);

Ви можете перевірити документацію тут


1
ні, це не працює. На вкладці браузера внизу, на Android - вгорі
Інструментарій

3
Вкладки @Toolkit для Android повинні відображатися зверху за замовчуванням згідно з документами Ionic. Вказівки Android - уникати використання нижніх смуг через дії за замовчуванням ОС, розташовані внизу: developer.android.com/design/patterns/pure-android.html
Даніель Рошетті

@Toolkit Я вже відредагував відповідь, щоб виправити інформацію про налаштування за замовчуванням на платформі. Якщо ви хочете налаштувати його, наведений вище код - це правильний шлях до нього. Однак я б запропонував вам уникати змін за замовчуванням платформи, вони, як правило, дотримуються вказівок платформи. =)
Даніель Рошетті

Чи є спосіб, використовуючи цей чи інший метод, мати вкладки "нижня та верхня"? Я спробував створити інший стан для свого нижнього колонтитулу, але, чомусь, він не відображається на екрані, хоча я бачу його на вкладці мережі у своєму браузері. Будь-які думки з цього приводу? Спасибі
Білл Папа

65

Щоб розмістити вкладки ionicFramework в нижній частині екрана для пристроїв Android, просто відкрийте файл app.js , а під angular.module додайте наступні рядки коду:

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

Сподіваюсь, це допоможе.


Як досягти вкладок у верхній і нижній частині екрана?
Датський Алі

Я думаю, ви могли б створити окремий шаблон для вкладок знизу і вгорі
Ахмед На.

О, так. Я розумію. Я новачок у світі цього іона.
Датський Алі

Це слід позначити як відповідь. Це просто і прямо до речі, ви отримали моє голосування ...
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 ('знизу')

.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

Для поточної версії іонний 2.0.0-beta.10.

У додатках:

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

Див. Налаштування

Скоро вийде іонний 2.0.0-beta.11

У додатках:

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'
    })
  ]
})

Дивіться документи


Чи є щось віддалено схоже на компонент Segment? Я можу поставити його внизу, якщо CSS не турбується, але, якщо поставити рамку на кнопки зверху, то начебто є стільки циклів, щоб проскочити і відчувається досить хитким, тому мені цікаво, чи було простіше рішення, але натрапив на жоден у документах. Насправді, Документ сегмента досить короткий .... ionicframework.com/docs/api/components/segment/Segment
yogibimbi

Відповідь на себе: ion-segment-button.segment-button { border-top-style: solid; border-bottom-width: 0; }чи не є хитрість, але для межі верхньої ширини я не знайшов іншого звернення, крім того, щоб встановити його явно в атрибуті стилю для елемента на 2px. Щось інше завжди перезаписує його 3px, навіть встановлення його в Chrome на елементі та з! Важливо в таблиці стилів, здається, не над цим.
йогібімбі

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

Будь ласка, уникайте лише відповідей коду та поясніть своє рішення.
Міхо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.