Как настроить контейнер Shell в SAPUI5

контейнер оболочки

У меня есть контейнер оболочки, и на больших экранах я хочу использовать полный экран. Я хочу покрыть всю площадь. как я могу настроить его.


person Nafees Abbasi    schedule 19.10.2016    source источник


Ответы (4)


При работе с файлом manifest.json и фреймворком UI5 создается экземпляр элемента управления оболочки, выполните следующие действия (appWidthLimited="false" нельзя использовать, так как у вас нет XML-файла, содержащего тег оболочки).

manifest.json

...
"sap.ui5": {
    "config": {
        "fullWidth": true
    },
    ...
...
person Michael Biermann    schedule 24.10.2016
comment
Всем привет. Как я могу сделать это во время выполнения? У меня 2 просмотра. Мне нужен только 1 из них в формате полной ширины - person MJBZA; 19.01.2018
comment
@MahdiJ.Ansari Вы можете сделать это с помощью сервисного модуля sap/ushell/services/AppConfiguration, пока приложение работает на FLP. См. stackoverflow.com/a/56137602/5846045. - person Boghyon Hoffmann; 14.05.2019

Я предполагаю, что вы используете XML для своих представлений. Добавьте следующий атрибут appWidthLimited="false" в тег Shell.

person matbtt    schedule 19.10.2016

Согласно последней документации, я упомянул 1.48.X, и его больше нет в sap.ui5:

"sap.ui": {
    "technology": "UI5",
    "icons": {
        "icon": "sap-icon://add-contact",
        "favIcon": "icon/F1373_Approve_Purchase_Orders.ico",
        "phone": "icon/launchicon/57_iPhone_Desktop_Launch.png",
        "phone@2": "icon/launchicon/114_iPhone-Retina_Web_Clip.png",
        "tablet": "icon/launchicon/72_iPad_Desktop_Launch.png",
        "tablet@2": "icon/launchicon/144_iPad_Retina_Web_Clip.png"
    },
    "deviceTypes": {
        "desktop": true,
        "tablet": true,
        "phone": false
    },
    "supportedThemes": [
        "sap_hcb"
    ],
    "fullWidth": true
},

Для получения дополнительной информации: https://openui5.hana.ondemand.com/#/topic/be0cf40f61184b358b5faedaec98b2da

Также, если вы используете sap.m.Shell, то вышеописанное не поможет.
Для этого вам нужно установить свойство appWidthLimited: false:

<script>
    sap.ui.getCore().attachInit(function () {
        new sap.m.Shell({
            app: new sap.ui.core.ComponentContainer({
                height: "100%",
                name: "APPNAME"
            }),
            appWidthLimited: false
        })
        .placeAt("content");
    });
</script>
person Kunal Panchal    schedule 13.10.2017
comment
У меня такое поведение на рабочем столе, но мне интересно, почему у меня другой вид на iPad. Кто-нибудь знает, как с этим справиться, пожалуйста? - person Pille; 19.07.2018
comment
Я пробовал и appWidthLimited: false, и "fullWidth": true, но ни один из них мне не подходит. Я использую библиотеку SAPUI5 1.66. - person Mike B.; 24.04.2019
comment
Я бы посоветовал проверить документацию один раз. Как я не проверял с версией 1.66 - person Kunal Panchal; 31.07.2019

Это можно сделать как статически, так и через XML-шаблон:

<mvc:View controllerName="letterboxing.widescreen.controller.index" xmlns:mvc="sap.ui.core.mvc" displayBlock="true" xmlns="sap.m">
    <Shell id="shell" appWidthLimited="false">
        <App id="app">
            <pages>
                <Page id="page" title="{i18n>title}">
                    <content></content>
                </Page>
            </pages>
        </App>
    </Shell>
</mvc:View>

Или динамически через JS-контроллер, который установит appWidthLimited:false в sap.m.Shell.

person Mike B.    schedule 09.05.2019