मुख्य सामग्री पर जाएँ
CrossFly 100% ओपन सोर्सGitHub पर फ़ॉलो करें
CrossFlyCrossFly
शुरू करें

यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।

EvenlySpacedLayout

बच्चों को एक अक्ष (डिफ़ॉल्ट रूप से क्षैतिज) पर समान अंतराल के साथ वितरित करता है, प्रत्येक का आकार संरक्षित रखते हुए। स्वयं-आकार वाले आइकनों/बटनों के टूलबार के लिए आदर्श।

🟡 · पैकेज: dev.crossfly.ui.layout · विस्तार करता है: Layout

कब उपयोग करें

  • क्रिया बार / आइकन टूलबार जिन्हें समान रूप से अंतराल पर रखा जाना चाहिए।

कब उपयोग न करें

  • जब आइटमों को भरने के लिए खिंचना चाहिए → HorizontalLayout में भिन्नों का उपयोग करें।

add(...) और कंस्ट्रक्टर

public EvenlySpacedLayout add(Component c);      // (या add(Component...))
new EvenlySpacedLayout();                          // HORIZONTAL (default)
new EvenlySpacedLayout(Orientation.VERTICAL);      // ऊर्ध्वाधर अक्ष

⚠️ मुख्य बिंदु: यह आइटमों का आकार निर्धारित नहीं करता

यह लेआउट केवल रिक्त स्थानों को वितरित करता है — प्रत्येक आइटम का आकार वर्तमान bounds से या auto-size से आता है। उत्तरदायी आइटमों के लिए, उन्हें Relative के साथ स्टाइल द्वारा एक आकार दें (autoWidth/autoHeight)।

पूर्ण उदाहरण (कॉपी करें, पेस्ट करें और चलाएँ)

package com.exemplo;

import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
import dev.crossfly.ui.graphics.*;

/** चलाने योग्य मुख्य स्क्रीन। launcher (classname) की ओर संकेत करें और चलाएँ: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
   @Override
   public void onShow() throws Exception
   {
      super.onShow();

      String[] icones = { "home", "search", "settings", "person" };

      Component toolbar = new Component();
      toolbar.setLayout(new EvenlySpacedLayout());                 // क्षैतिज
      Relative lado = Relative.ofScreen(0.12f, ScreenSize.MIN);    // छोटी भुजा का 12% → रेस्पॉन्सिव वर्ग
      for (String glyph : icones) {
         Button b = new Button(new MaterialIcon(glyph));
         b.getStyle().autoWidth(lado).autoHeight(lado);            // स्टाइल द्वारा रेस्पॉन्सिव आकार
         toolbar.add(b);
      }

      setLayout(new VerticalLayout(Position.START, Position.START));
      add(LAY_FILL, new Component());   // सामग्री (placeholder)
      add(LAY_AUTO, toolbar);           // फुटर में क्रिया बार
   }
}

नीचे दिए गए अंश केवल मूल भाग दिखाते हैं (जो onShow() के अंदर जाता है)। चलाने के लिए, उन्हें ऊपर दिए गए MainWindow ढाँचे में रखें।

बुनियादी उपयोग

Component toolbar = new Component();
toolbar.setLayout(new EvenlySpacedLayout());                 // क्षैतिज
Relative lado = Relative.ofScreen(0.12f, ScreenSize.MIN);    // छोटी भुजा का 12% → रेस्पॉन्सिव वर्ग
for (String glyph : icones) {
   Button b = new Button(new MaterialIcon(glyph));
   b.getStyle().autoWidth(lado).autoHeight(lado);            // स्टाइल द्वारा रेस्पॉन्सिव आकार
   toolbar.add(b);
}

यह कैसे व्यवस्थित करता है

│   [i1]     [i2]     [i3]   │   ← espaços iguais entre e nas bordas; itens mantêm seu tamanho

अच्छी प्रथाएँ

  • आइटमों का आकार Relative द्वारा दें (portrait/landscape के अनुकूल वर्गों के लिए ofScreen(..., ScreenSize.MIN))।

सामान्य त्रुटियाँ

  • यह अपेक्षा करना कि आइटम स्वचालित रूप से एक ही आकार के हो जाएँगे — वे नहीं होते; आकार परिभाषित करें।
  • आइटमों के आकार के लिए निश्चित पिक्सेल का उपयोग करना।

यह भी देखें

क्या यह पृष्ठ उपयोगी था?