यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।
स्टाइल और थीम
CrossFly में दिखावट स्वयं फ्रेमवर्क की एक स्मृति-सहायक में सिमट जाती है:
Skin = संरचना / रेंडरर · Theme = मोड-वार अर्थपूर्ण भूमिकाएँ।
तीन अलग-अलग ज़िम्मेदारियाँ मिलकर काम करती हैं।
1. अवस्था-वार स्टाइल (default / focused / pressed)
हर Component के तीन तक स्टाइल हो सकते हैं और फ्रेमवर्क अंतःक्रिया के अनुसार हर frame में सही वाला चुनता है।
इसीलिए एक बटन दबाए जाने पर बिना आपके कुछ एनिमेट किए “धँस” जाता है।
comp.style(normal).focusedStyle(focado).pressedStyle(apertado);
2. Skin — आकृति की फ़ैक्ट्री
Skin संरचना को परिभाषित करता है: कोने की त्रिज्याएँ, बॉर्डर की मोटाई, अंतराल, डिफ़ॉल्ट आइकन। MaterialSkin,
IOSSkin, FlutterSkin मौजूद हैं। एक कस्टम Skin आकृति/अंतराल को अधिरोहित करता है — रंग कभी नहीं। वैश्विक
Skin बदलना सभी कंपोनेंट को फिर से पहनाता है।
3. Theme + ColorScheme — अर्थपूर्ण भूमिकाएँ
रंग भूमिकाओं (PRIMARY, SURFACE, ON_SURFACE, ERROR, TITLE, HINT…) से आते हैं जो वर्तमान हल्के/गहरे मोड के
लिए हल किए जाते हैं, एक बीज-रंग से उत्पन्न ColorScheme से (Material You)।
Styles.theme(0xFF6750A4, ThemeMode.DARK); // एक कॉल सब कुछ को थीम देती है, dark mode में
सबसे शक्तिशाली बिंदु: runtime पर UI को पुनः बनाए बिना थीम बदलना
यहाँ वह सूक्ष्मता है जो हल्के/गहरे मोड को मामूली बना देती है:
- स्टाइल के रंग “जमे हुए” मान नहीं हैं — वे
PalColorहैं, पैलेट के जीवंत संदर्भ। - एक वैश्विक स्टाइल-संस्करण गणक है (
styleVersion)। जब कोई नई स्कीम लागू की जाती है / मोड बदला जाता है, फ्रेमवर्क संस्करण बढ़ाता है और सभी खुली विंडो में थीम फिर से लागू करता है —PalColorपर आधारित हर स्टाइल अगले frame में अपने रंग फिर से हल कर लेता है। कोई कंपोनेंट नष्ट होकर पुनः नहीं बनाया जाता।
इसके पूरक के रूप में, वे कंपोनेंट जिनका स्टाइल मोड-वार आकृति बदलता है, स्वयं को पुनः-स्टाइल करने का तरीका
पंजीकृत करते हैं (onRestyle/styled) और restyle() उप-वृक्ष को यथास्थान पुनः लागू करता है:
Label titulo = new Label("Bem-vindo").styled(() -> Styles.theme().label(LabelRole.TITLE));
// ...मोड बदलने पर, framework इस provider का पुनर्मूल्यांकन करता है और Label को फिर से बनाए बिना पुनः स्टाइल करता है।
Styles.toggleDarkMode();
यह आर्किटेक्चर क्यों
- आकृति (Skin) को रंग (Theme) से अलग करना आपको दृश्य पहचान और पैलेट को स्वतंत्र रूप से बदलने देता है — और Skin को छुए बिना हल्के/गहरे में ढालने देता है।
PalColor+ संस्करण “थीम बदलना” को “वृक्ष को पुनर्निर्माण करना” से “अगले frame में रंग फिर से हल करना” में बदल देता है — सस्ता और बिना झिलमिलाहट के।
यह भी देखें
- लागू करें: थीम और स्टाइल · हल्का/गहरा मोड
- आगे: जीवनचक्र