यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।
VerticalLayout
बच्चा-घटकों को ऊपर से नीचे ढेर करता है (प्रति बच्चे एक पंक्ति), प्रत्येक कंटेनर की चौड़ाई (मार्जिन घटाकर) घेरता है। यह सबसे अधिक उपयोग किया जाने वाला लेआउट है — अधिकांश स्क्रीनों की रीढ़।
🟢 · पैकेज:
dev.crossfly.ui.layout· विस्तार करता है:Layout
कब उपयोग करें
- स्तंभ में स्क्रीन: शीर्षलेख + सामग्री + पादलेख।
- ढेर किए गए अनुभागों की कोई भी सूची।
कब उपयोग न करें
- अगल-बगल आइटम → HorizontalLayout।
- लेबल/फ़ील्ड ग्रिड → GridLayout।
add(...) — हस्ताक्षर और अर्थ
public VerticalLayout add(float altura, Component c)
altura पैरामीटर पंक्ति को नियंत्रित करता है:
| मान | अर्थ |
|---|---|
LAY_AUTO (0f) |
घटक की प्राकृतिक ऊँचाई (getAutoHeight()) — फ़ॉन्ट के साथ स्केल करता है |
LAY_FILL (-1f) |
शेष स्थान भरता है (प्रति लेआउट एक FILL पंक्ति का उपयोग करें) |
> 0 (ex. 0.25f) |
कंटेनर की ऊँचाई का भिन्न (25%) — पिक्सेल नहीं हैं |
कंस्ट्रक्टर
| कंस्ट्रक्टर | विवरण |
|---|---|
new VerticalLayout() |
प्रत्येक पंक्ति का क्षैतिज संरेखण केंद्रित |
new VerticalLayout(Position h, Position v) |
h = पंक्तियों का क्षैतिज संरेखण (START/CENTER/END) |
पूर्ण उदाहरण (कॉपी करें, पेस्ट करें और चलाएँ)
package com.exemplo;
import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
/** चलाने योग्य मुख्य स्क्रीन। launcher (classname) की ओर संकेत करें और चलाएँ: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
@Override
public void onShow() throws Exception
{
super.onShow();
setLayout(new VerticalLayout(Position.START, Position.START));
Component lista = new Component(); // लचीली सामग्री (placeholder)
lista.setLayout(new VerticalLayout(Position.START, Position.START));
for (int i = 1; i <= 5; i++)
lista.add(LAY_AUTO, new Label("Produto " + i));
add(LAY_AUTO, new Label("Produtos")); // हेडर — स्वाभाविक ऊंचाई
add(LAY_FILL, lista); // सामग्री — पूरी बची जगह घेरता है
add(LAY_AUTO, new Button("Adicionar")); // फुटर — स्वाभाविक ऊंचाई
}
}
नीचे दिए गए अंश केवल मूल भाग दिखाते हैं (जो
onShow()के अंदर जाता है)। चलाने के लिए, उन्हें ऊपर दिए गएMainWindowढाँचे में रखें।
बुनियादी उपयोग
setLayout(new VerticalLayout(Position.START, Position.START));
add(LAY_AUTO, new Label("Produtos")); // हेडर — स्वाभाविक ऊंचाई
add(LAY_FILL, lista); // सामग्री — पूरी बची जगह घेरता है
add(LAY_AUTO, new Button("Adicionar")); // फुटर — स्वाभाविक ऊंचाई
यह कैसे व्यवस्थित करता है
┌──────────────────────────┐
│ Label (LAY_AUTO) │ ← altura natural
├──────────────────────────┤
│ │
│ lista (LAY_FILL) │ ← preenche o que sobrou
│ │
├──────────────────────────┤
│ Button (LAY_AUTO) │ ← altura natural
└──────────────────────────┘
अच्छी प्रथाएँ
- 1
LAY_FILLपंक्ति + शेषLAY_AUTOसबसे मज़बूत व्यवस्था है (फ़ॉन्ट बढ़ने या कीबोर्ड खुलने पर नहीं टूटती)। - पंक्तियों को अंतरित करना: स्पेसर के रूप में
add(LAY_AUTO, Gap.ofFont(0.25f))डालें (Gapआधी फ़ॉन्ट ऊँचाई की एक पंक्ति के रूप में गिना जाता है)।
सामान्य त्रुटियाँ
- सभी पंक्तियों को भिन्न देना (हर चीज़ में
add(0.2f, …)) — नाजुक; auto + 1 fill को प्राथमिकता दें। - यह सोचना कि
add(0.7f, x)शेष का 70% है — यह कंटेनर की कुल ऊँचाई का 70% है। - एक से अधिक
LAY_FILLपंक्ति — केवल अंतिम प्रभावी होती है।
यह भी देखें
क्या यह पृष्ठ उपयोगी था?प्रतिक्रिया के लिए धन्यवाद!