Я разрабатываю приложение iOS/Android, используя интерфейс Monaca + Onsen. Я использую следующий HTML структуру для каждой страницы:Как сохранить высоту заголовка пользовательского интерфейса Onsen после pushPage?
tabbar.html
<ons-page>
<ons-tabbar var="mainTb">
<ons-tabbar-item no-reload icon="home" label="HOME" page="home.html" active="true">
</ons-tabbar-item>
<ons-tabbar-item no-reload icon="talk" label="TALK" page="talkList.html">
</ons-tabbar-item>
...
</ons-tabbar>
</ons-page>
talkList.html
<ons-page ng-controller="TalkListController">
<!-- This is the "Navigation bar" -->
<ons-toolbar>
<ons-toolbar-button ng-click="fnShowGlobalMenu()">
<ons-icon icon="ic_global"></ons-icon>
</ons-toolbar-button>
</ons-toolbar>
<!-- The list of talk -->
<ons-list>
<ons-list-item ng-repeat="r in talkRow" ng-click="showTalk(r.talkCode)">
<ons-row>
<ons-col>
<div>
{{r.userName}}
</div>
<!-- Some talk list info... -->
</ons-col>
</ons-row>
</ons-list-item>
</ons-list>
</ons-page>
talkDetail.html
<ons-page ng-controller="TalkDetailController">
<!-- This page have "Go back" icon instead of "Global Menu" -->
<ons-toolbar>
<ons-toolbar-button ng-click="fnShowGlobalMenu()">
<ons-icon icon="ic_global"></ons-icon>
</ons-toolbar-button>
</ons-toolbar>
<!-- This is where message bubbles show up for users. -->
<ons-list-item ng-repeat="r in messageRow" repeat-done="toBottom()">
...
</ons-list-item>
<!-- This is text area to enter message to send. -->
<ons-bottom-toolbar>
..
</ons-bottom-toolbar>
</ons-page>
В принципе, для навигации по Google TalkDetail в навигацию требуется два шага, которые показывают, что пользователи разговаривают на временной шкале. Пользователь нажимает на вкладку пункт «TALK», затем переходит к talklist.html. Пользователь, следующий для выбора, с которым нужно поговорить, и удаляет один из элементов списка ons-list, которые вызывают showTalk()
. Это showTalk()
просто this._scope.appRoot.pushPage(pageName, params);
Код работает почти отлично, за исключением случаев, когда страница перемещается в talkDetail.html. При перемещении из talkList.html в talkDetail.html «панель навигации» (ons-toolbar) в talkDetail.html сжимает ее высоту, делает текст заголовка и кнопку «назад» в этой области сложнее.
Это происходит только в IOS устройства, а не в Android.
Есть ли способ исправить это? Я попытался «переопределить» css, но я не знаю, правильно ли это. Извините за вопрос noob. Я совершенно новичок в пользовательских интерфейсах Onsen и Monaca ...
Благодарим за сообщение. Возможно, причина, по которой Онсен пытается сжать свою панель инструментов, может быть в talkDetail.html не имеет ons-tabbar, как показано в tabbar.html. Поскольку Android сохраняет высоту своего табуларта без какого-либо кода, я не смог найти какой-либо код для «настройки» высоты talkDetail.html. Навигация по страницам осуществляется с помощью pushPage, и он перемещает любые страницы без ons-навигатора (я не знаю, что это плохой дизайн структуры или нет). Я посмотрю на codepen и disableAutoStatusBarFill(). Благодаря! –
Я пытался решить эту проблему. Во-первых, мой проект с использованием Onsen UI 1 (не 2), поэтому изменение атрибута не является вариантом. Затем я попытался disableAutoStatusBarFill, однако он должен быть установлен до начальной фазы Onsen. –
Итак, я решил пойти на css. В настоящее время я переопределяю «.navigation-bar» и его высоту. Проблема с панелью iOS решена. Но тогда панель инструментов Android изменилась, как я и ожидал ... Есть ли способ, как '.navigation-bar - android', который работает только для iOS? Когда я пытался использовать '--android', странная версия Android этой страницы не использует этот макет. Я пытаюсь изменить высоту панели инструментов конкретной страницы (** talkDetail.html **), а не для всего приложения. –