Einleitung
In der ADF Project Session 3 in Deutschland im Dezember wurde folgende Frage innerhalb der Übung über die ADF Layout Strategien am häufigsten gestellt:
Warum wird die Tabelle (mit den vorhanden Spalten) nicht auf 100% der Breite und Höhe gestretcht ?
Dieser Eintrag behandelt kurz die wichtigsten Antworten auf die gestellte Frage.
Problem
Simon: "Ich verwende StretchPanelLayout aber trotz dem wird die Tabelle nicht gestretcht !"
Mentor: "Prüfe Deine Seitenstruktur auf Flow Layout !"
Ursache
Einer der häufigsten Ursachen für dieses Erscheinungsbild ist die Tatsache, dass die Layoutkonzept von Stretch auf Flow gewechselt hat ohne das der Entwickler dies mit bekommen hat.
Sobald eine weitere UI Komponente in eine Facette geworfen wird fügt der Oracle JDeveloper ein PanelGroupLayout - Komponente hinzu und wechselt von der Stretch- auf die Flow - Konzept.
Lösung
Aus Stretch wird Flow, wenn sich mehr als eine Komponente im Teilbaum befindet !
Verifiziere Dein Layout im Structure Panel, auch wenn Du den JDeveloper nicht traust !
Problem
Rudolf: "Ich verwende StretchPanelLayout aber trotzdem werden die Spalten meiner Tabelle nicht auf die gesamte Breite verteilt !"
Mentor: "Denke nicht in HTML und CSS (width:100%). Denke in Komponenten !"
Ursache
Wenn ein Bereich gestretch wird, so wird die UI Komponente skaliert, aber nicht automatisch alle weiteren UI Komponenten im Teilbaum. D.h. in diesem Fall, das die PanelCollection auf eine Breite von 100% skaliert wird. Wie die einzelnen Spalten der Table verbreitert werden sollen, ist nicht definiert.
Lösung
Über die Eigenschaft ColumnStretching der UI Komponente Table, kann eine Strategie zum auffüllen, des Leerraumes vorgegeben werden.
af:table - Oracle Fusion Middleware Tag Reference for Oracle ADF Faces (11.1.2)
Geometry Management
This component can be stretched by a parent layout component that stretches its children, e.g. panelStretchLayout. When stretching this component, the only valid setting for autoHeightRows is "-1".
When NOT stretched, autoHeightRows="0" can be used to size the height to the fetch size, which is similar to dimensionsFrom="children". Please refer to 'autoHeightRows' attribute for more information. Use the columnStretching attribute to configure stretching of the children column components
JDeveloper Workspace
Oracle Fusion Middleware Tag Reference for Oracle ADF Faces (11.1.2)
Keine Kommentare:
Kommentar veröffentlichen