Как оформить ‹xe:tabBar› и ‹xe:tabBarButton› как панель навигации нижнего колонтитула на мобильном устройстве?

Как стилизовать элементы управления xe:tabBar и xe:tabBarButton, чтобы они выглядели как «собственный» нижний колонтитул с кнопками (включая значки и текст)?


person Patrick Kwinten    schedule 24.05.2013    source источник
comment
Какую версию домино вы используете?   -  person keithstric    schedule 24.05.2013


Ответы (3)


Чтобы панель вкладок оставалась внизу страницы, используйте панель прокрутки Dojo (dojox.mobile.ScrollablePane). Если вы используете Domino 9, этот виджет уже доступен и может быть реализован следующим образом:

<xe:appPage
id="appPage1"
pageName="firstpage">
<xe:djxmHeading
    id="heading1"
    label="Scrollable Pane Demo">
</xe:djxmHeading>
<xp:div
    id="scrollableContent"
    dojoType="dojox.mobile.ScrollablePane">
        <xp:this.dojoAttributes>
            <xp:dojoAttribute name="fixedFooter">
                <xp:this.value><![CDATA[#{javascript:var mobFooter = getComponent("tabBar1");
return mobFooter.getClientId(facesContext);}]]></xp:this.value>
            </xp:dojoAttribute>
            <xp:dojoAttribute name="fixedHeader">
                <xp:this.value><![CDATA[#{javascript:var mobHeader = getComponent("heading1");
return mobHeader.getClientId(facesContext);}]]></xp:this.value>
            </xp:dojoAttribute>
            <xp:dojoAttribute
                name="scrollDir"
                value="v">
            </xp:dojoAttribute>
            <xp:dojoAttribute
                name="fixedHeaderHeight"
                value="54">
             </xp:dojoAttribute>
            <xp:dojoAttribute
                name="fixedFooterHeight"
                value="54">
            </xp:dojoAttribute>
        </xp:this.dojoAttributes>
    YOUR CONTENT GOES HERE
</xp:div>
<xe:tabBar
    id="tabBar1"
    barType="segmentedControl"> 
</xe:tabBar>
</xe:appPage>

Верхний и нижний колонтитулы должны оставаться за пределами ScrollablePane, и для функциональности требуются следующие атрибуты dojo:

  • фиксированный заголовок
  • фиксированный нижний колонтитул
  • прокруткаDir
  • фиксированныйHeaderHeight
  • фиксированныйFooterHeight

Если вы используете Domino 8.5.3, вам придется добавить ScrollablePane и все его зависимости в ваш NSF, о чем я расскажу в сообщении блога здесь. Дополнительную документацию можно найти здесь.

person keithstric    schedule 27.05.2013

Вам потребуется реализовать версию dojo scrollableView или scrollablePane, чтобы панель навигации надежно позиционировалась в нижней части мобильного устройства. Посмотрите видео Кейта Стрикленда на NotesIn9, в котором объясняется, как это сделать, если у вас возникнут проблемы.

Используя Domino 9.0, мы в Red Pill Development обнаружили, что стилизация NavBar только с помощью CSS не гарантирует, что панель навигации всегда будет опускаться вниз экрана при каждом переходе страницы приложения и/или ориентации экрана и/или частичном обновлении.

person Peter Presnell    schedule 24.05.2013

В настоящее время это невозможно с текущим набором мобильных элементов управления XPages. Мы зарегистрировали PHAN962BJ8, чтобы решить эту проблему в будущем.

person Paul Hannan    schedule 27.05.2013
comment
Пол, это неправда, ScrollablePane (dojox.mobile.ScrollablePane), доступный в Domino 9, прекрасно решает эту проблему. Отсюда мой вопрос о том, какая версия Domino. - person keithstric; 27.05.2013
comment
Я согласен, я хотел сказать, что это невозможно напрямую и что вы должны установить ряд свойств для конфигурации. Есть надежда, что все это можно сделать из коробки и без необходимости делать эти дополнительные шаги. - person Paul Hannan; 04.06.2013
comment
Я думаю, что с точки зрения разработчиков ожидать, что IBM будет решать и предоставлять компоненты для всего, что есть в додзё, было бы ожиданием многого (даже несмотря на то, что разработчики домино избалованы благодаря IBM, что, я думаю, хорошо). Хотя было бы здорово, если бы IBM могла это сделать, они не могут продумать каждую реализацию, которую кто-то может попробовать и придумать. Разработчику необходимо активизироваться и найти обходные пути для того, что IBM не предоставляет, поскольку XPages и Domino предоставляют идеальную инфраструктуру для этого. Как только разработчики узнают, что ограничений больше нет, их навыки резко увеличатся. - person keithstric; 05.06.2013