Центрируйте элемент ‹af: outputText› в шаблоне ADF

Как я могу центрировать шаблон в adf?

Ниже приведен код

<af:panelGroupLayout id="pt_g1" layout="horizontal" valign="middle" halign="start" rendered="true">
  <af:spacer width="15" id="pt_s1"/>
  <af:image id="pt_i1" source="/images/logo.png" inlineStyle="height:70px; width:70px;"/>
  <af:outputText value="My First Application" id="pt_ot1" inlineStyle="font-size:x-large; color:White;" noWrap="true"/>
</af:panelGroupLayout>

Я использую JDeveloper 12c

--- ОБНОВЛЕНИЕ ---

Я пробовал подписаться. Но это немного отличается от ожидаемого.

<af:panelStretchLayout id="pt_psl2" startWidth="33%" endWidth="33%">
    <f:facet name="center">
        <af:panelGroupLayout id="pt_pgl1" inlineStyle="min-width:33%;" halign="center" valign="middle">
            <af:outputText value="test application" id="pt_ot1" inlineStyle="font-size:x-large; color:White;" noWrap="true"/>
        </af:panelGroupLayout>
    </f:facet>
    <f:facet name="start">
        <af:panelGroupLayout id="pt_pgl3" inlineStyle="min-width:33%;">
            <af:spacer width="15" id="pt_s1"/>
            <af:image id="pt_i1" source="/images/test_logo.png" inlineStyle="height:70px; width:70px;"/>
        </af:panelGroupLayout>
    </f:facet>
    <f:facet name="end">
        <af:panelGroupLayout id="pt_pgl2" inlineStyle="min-width:33%;" halign="end" valign="middle">
            <af:image source="images/home.png" id="pt_i2"/>
            <af:link text="Home" id="pt_l5" inlineStyle="color:White;"/>
        </af:panelGroupLayout>
    </f:facet>
</af:panelStretchLayout>

Изображение макета. С текущим и ожидаемым результатом.

Как мы видим в выводе, контент запускается с левой стороны, в то время как я хочу, чтобы логотип начинался с левой стороны, заголовок приложения посередине страницы и другие разделы ссылок с правой стороны страницы.

Как я могу добиться того же?


person IT ppl    schedule 20.03.2014    source источник


Ответы (2)


Используйте af:panelStretchLayout вместо af:panelGroupLayout. У него 5 граней. Вы можете поместить свое содержимое в фасеты «center» и либо удалить остальные, либо поставить в них разделитель.

person Endrik    schedule 20.03.2014
comment
Привет, Эндрик, я сделал то же самое. На самом деле мне нужно установить заголовок для приложения. В котором есть три раздела: левая часть (например, логотип), центральная часть (например, имя приложения) и правая часть (например, другие ссылки). Итак, я использовал panelStretchLayout и удалил верхний и нижний фасеты, а затем установил ширину начального и конечного фасетов на 33%. Таким образом, все части делятся поровну. Теперь для каждой стороны я взял af: PanelGroupLayout и поместил все свое содержимое в каждый отдельный PanelGroupLayout. Теперь проблема в том, что все содержимое всегда начинается с левой стороны, что нежелательно. - person IT ppl; 21.03.2014
comment
Мне нужно выровнять логотип по левой стороне, имя приложения в центре панели и другие ссылки должны быть назначены справа. - person IT ppl; 21.03.2014
comment
Попробуйте установить свойство макета panelGroupLayout как вертикальное или горизонтальное (не используйте его по умолчанию) - person Endrik; 21.03.2014
comment
Эндрик, это главное. Спасибо. Но теперь я столкнулся с другой проблемой. В правом разделе у меня есть несколько ссылок (скажем, 3 ссылки, включая одну строку меню), они разделены на разные строки. Я хочу отобразить их в одну строку. Как я могу добиться того же? - person IT ppl; 21.03.2014
comment
Использование горизонтального макета на панелиGroup должно быть достаточно. Другой способ - разместить все ссылки внутри menuBar - person Endrik; 21.03.2014
comment
да. Это сработало. Спасибо за ваше время :) Буду задавать больше вопросов в будущем :) - person IT ppl; 21.03.2014
comment
Не могли бы вы помочь с этим stackoverflow.com/questions/24310601/ - person IT ppl; 19.06.2014

Предполагая, что в одной из более поздних версий ADF вы должны изучить af: panelGridLayout для реализации такого типа пользовательских интерфейсов.

person Shay Shmeltzer    schedule 26.03.2014
comment
вы имеете в виду, используя ‹af: panelGridLayout›, я могу добиться ожидаемого результата для части заголовка, как предлагает изображение? Я использую jDeveloper 12C - person IT ppl; 26.03.2014
comment
Да, вы устанавливаете свойство halign каждого af: gridCell таким, каким вы хотите его видеть. начало, середина, конец. jdevadf.oracle.com/adf-richclient-demo/docs/ tagdoc / - person Shay Shmeltzer; 27.03.2014
comment
Вау, это здорово. Я не знал об этом. Спасибо, Шэй :) - person IT ppl; 27.03.2014
comment
Сэр, было бы очень полезно, если бы вы могли помочь с этим вопросом. stackoverflow.com/questions/23234371/ - person IT ppl; 03.05.2014