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

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

Switch

Switch एक चालू/बंद स्विच है जिसमें गोल ट्रैक और एक “thumb” (स्लाइडिंग बटन) होता है जो off और on अवस्थाओं के बीच एनिमेटेड रूप से सरकता है। यह बगल में एक वैकल्पिक टेक्स्ट लेबल और on/off आइकन स्वीकार करता है जो ट्रांज़िशन में crossfade करते हैं। यह किसी तत्काल प्राथमिकता को सक्षम/अक्षम करने के लिए आदर्श नियंत्रण है, iOS/Material शैली में।

🟢 · पैकेज: dev.crossfly.ui · विस्तार करता है: Component (Checkable, AlphaAnimation.Animate लागू करता है) · शैली: SwitchStyle

कब उपयोग करें

  • तत्काल प्रभाव के साथ किसी एकल प्राथमिकता को चालू/बंद करना (उदा.: “सूचनाएँ सक्षम करें”)।
  • जहाँ उपयोगकर्ता एक दृश्य toggle की अपेक्षा करता हो, न कि चेकबॉक्स की।

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

  • एक साथ दिखने वाले कई विकल्पों में से चुनने के लिए → group के भीतर option उपयोग करें।
  • विकल्पों की बड़ी सूची के लिए → dropdown उपयोग करें।

रूप-रंग

गोल ट्रैक (trackRadius = trackH/2) जिसमें एक वर्गाकार thumb thumbMinX (off) से thumbMaxX (on) तक चलता है। ट्रैक की चौड़ाई, ऊँचाई और thumb का आकार फ़ॉन्ट की ऊँचाई के समानुपाती होते हैं (SwitchStyle का switchWidth, trackHeight, thumbSizeRatio)। वैकल्पिक लेबल स्विच के बगल में रहता है; जब iconAlignH == 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());

      // Label जो switch की स्थिति दर्शाता है
      Label saida = new Label("Recurso: desligado");
      add(LAY_AUTO, saida);

      // रॉतल वाला Switch; onAction तभी चलता है जब स्थिति बदलती है
      Switch toggle = new Switch("Ativar recurso");
      toggle.checked(false);   // प्रारंभिक स्थिति, बिना एनिमेशन
      toggle.onAction(c -> saida.setText("Recurso: " + (toggle.checked ? "ligado" : "desligado")));
      add(LAY_AUTO, toggle);
   }
}

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

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

Switch toggle = new Switch("Ativar recurso");
toggle.checked(true);                                  // आरंभिक स्थिति, बिना एनिमेशन
toggle.onAction(c -> System.out.println("estado: " + toggle.checked));
container.add(LAY_AUTO, toggle);

Constructors

Constructor विवरण
Switch() अचयनित, लेबल रहित (केवल-आइकन मोड)।
Switch(String text) अचयनित, बगल में लेबल के साथ।

गुण और अनुकूलन

गुण / विधि प्रकार डिफ़ॉल्ट क्या करता है
text(String) Switch (fluente) null लेबल सेट करता है।
checked(boolean) Switch (fluente) false एनिमेशन रहित प्रारंभिक अवस्था (progress सीधे समायोजित करता है); समूह को सूचित करता है।
setChecked(boolean) void — एनिमेशन सहित अवस्था; समूह को सूचित करता है।
toggle() void — अवस्था बदलता है (समूह का सम्मान करते हुए)।
checked boolean (campo) false वर्तमान तार्किक अवस्था (पठन)।
progress float (campo) 0 thumb की प्रक्षेपित स्थिति: 0 = off, 1 = on।
.group(Group) Switch (fluente) — पारस्परिक अपवर्जन के लिए किसी group से जोड़ता है।

Callbacks और घटनाएँ

Callback कब ट्रिगर होता है
onAction(Action) onTouchUp में, केवल तभी जब अवस्था (checked) बदली हो।

अवस्थाएँ

  • checked / unchecked: checked(boolean) (एनिमेशन रहित) या setChecked(boolean) (एनिमेशन सहित) द्वारा नियंत्रित। checked फ़ील्ड अवस्था दर्शाता है।
  • एनिमेशन में: progress AlphaAnimation के माध्यम से 0 से 1 (या इसके विपरीत) संक्रमित होता है (अवधि = style.animationDuration)।
  • समूह में: toggle() किसी समूह के पहले से चयनित स्विच को अचयनित नहीं करता (रेडियो व्यवहार)।

किसी Group में परस्पर अनन्य कई स्विच (रेडियो)

Group modo = new Group();

Switch claro  = new Switch("Tema claro").group(modo).checked(true);
Switch escuro = new Switch("Tema escuro").group(modo);

container.add(LAY_AUTO, claro);
container.add(LAY_AUTO, escuro);
// किसी एक को चुनने पर दूसरा अपने आप अनचेक हो जाता है।

अच्छे अभ्यास

  • प्रारंभिक अवस्था के लिए checked(boolean) को प्राथमिकता दें (progress और समूह को एक साथ समायोजित करता है); runtime में एनिमेटेड ट्रांज़िशन चाहिए तो setChecked उपयोग करें।
  • onAction के भीतर isChecked() या checked फ़ील्ड द्वारा अवस्था पढ़ें।

सामान्य गलतियाँ

  • हर इंटरैक्शन पर onAction ट्रिगर होने की अपेक्षा करना: यह केवल तभी ट्रिगर होता है जब checked बदलता है।
  • किसी Group के भीतर पहले से चयनित स्विच पर क्लिक करके उसे “बंद” करने का प्रयास: toggle() इसे रोकता है (रेडियो)।

यह भी देखें

  • क्षेत्र गाइड: ui/ · रेसिपी: cookbook/
  • अवधारणा (अवस्था के अनुसार शैलियाँ): concepts/
  • संबंधित घटक: option · group
क्या यह पृष्ठ उपयोगी था?