Моя программная логика работает хорошо, но я не могу понять, как заставить критические компоненты настроить свой размер на доступную высоту экрана. Например, у меня есть:Отрегулируйте p: дерево, чтобы использовать доступную высоту
<p:layout id="workLayout" style="margin-top: 5px; height: 95%">
<p:layoutUnit position="west"
resizable="true"
minSize="50"
size="200">
<h:form id="treeForm">
<p:tree value="#{workspace.listTree}"
var="node"
>
<p:treeNode>
<h:outputText value="#{node.name}" />
</p:treeNode>
</p:tree>
</h:form>
</p:layoutUnit>
Что происходит, так это то, что высота макета составляет около 200 пикселей. (Значение высоты CSS не имеет эффекта). Как только вы разворачиваете несколько узлов в дереве, вам нужно начать вертикальную прокрутку, в то время как в пространстве p: layout есть много потерянного пробела.
Любой намек на то, как это сделать?
Update: я обнаружил, что могу приблизиться к эффекту, что я хочу, если я введу абсолютную высоту, как это:
<p:layout id="workLayout" style="margin-top: 5px; height: 6in">
кажется, что значение высоты зависит от некоторого внешнего контейнера. Однако, если это так, то почему объект может изменить размер, когда я изменяю горизонтальный размер окна браузера? Я хочу, чтобы он отвечал на вертикальный размер.
хорошая идея, но это, похоже, не оправдались. Контейнер p: tree - это p: layoutUnit, и я должен как-то отрегулировать его и позволить p: tree expand заполнить это пространство. – AlanObject