यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।
स्पिनर और प्रगति बार (Progress) कैसे दिखाएं
उद्देश्य. यह संकेत देना कि कुछ प्रगति पर है। Progress के तीन मोड हैं,
जो कंस्ट्रक्टर द्वारा चुने जाते हैं: घूमता आइकन (स्पिनर), निर्धारित बार (0–100% ज्ञात
मान के साथ) और अनिर्धारित (अनंत लूप, जब समय ज्ञात न हो)। जब आपके पास ज्ञात अंश हो
(अपलोड, डाउनलोड) तब निर्धारित उपयोग करें; अंश के बिना “लोड हो रहा है…” के लिए
अनिर्धारित/स्पिनर उपयोग करें।
प्रयुक्त APIs
new Progress(Icon icon)— स्पिनिंग मोड: आइकन को निरंतर घुमाता है।new Progress(float min, float max)— निर्धारित बार मोड:[min, max]सीमा के साथ बार बनाता है; प्रारंभिक मान =min।progress.setValue(float v)— मान अपडेट करता है ([min, max]तक क्लैंप किया गया); भरे हुए अंश की पुनर्गणना करता है। फ्लुएंट।new Progress(ProgressType type)— अनिर्धारित मोड: दी गई शैली में अनंत बार/स्पिनर।ProgressType.MATERIAL,ProgressType.FLUTTER,ProgressType.IOS,ProgressType.STRIPED— अनिर्धारित मोड की दृश्य विविधताएँ (IOSएक वृत्ताकार स्पिनर है; बाकी बार हैं)।progress.pivot(int px, int py)— (स्पिनिंग मोड) कस्टम रोटेशन पिवट;-1,-1= आइकन का केंद्र।
गैर-स्पष्ट व्यवहार (स्रोत में पुष्ट): एनिमेशन स्वतः शुरू होता है जब
Progressको किसी पैरेंट में जोड़ा जाता है (onAdd) और रुक जाता है जब उसे हटाया जाता है (onRemove)। कोई सार्वजनिकstart()/stop()नहीं है — प्रगति को “छिपाने” के लिए, कंपोनेंट को स्क्रीन से हटा दें।modeफ़ील्ड final है (कंस्ट्रक्टर में परिभाषित, अपरिवर्तनीय)।
पूरा उदाहरण (कॉपी करें, पेस्ट करें और चलाएं)
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();
setLayout(new VerticalLayout());
// 1) Spinner (घूमता आइकन) — सामान्य "लोड हो रहा है"
Progress spinner = new Progress(new MaterialIcon("autorenew", 48));
add(spinner);
// 2) निर्धारित बार (0 से 100) — वास्तविक प्रगति के अनुसार अपडेट करें
Progress barra = new Progress(0f, 100f);
add(barra);
// ...जैसे-जैसे डाउनलोड आगे बढ़ता है:
barra.setValue(75f); // 75% भरा हुआ
// 3) अनिर्धारित (अनंत लूप) — बिना ज्ञात अंश
Progress infinito = new Progress(ProgressType.MATERIAL);
add(infinito);
// iOS शैली का गोलाकार spinner वेरिएंट:
Progress ios = new Progress(ProgressType.IOS);
add(ios);
}
}
नीचे का अंश केवल मुख्य भाग दिखाता है। चलाने के लिए, इसे ऊपर दिए गए
MainWindowढाँचे में रखें।
न्यूनतम अंश
// 1) Spinner (घूमता आइकन) — सामान्य "लोड हो रहा है"
Progress spinner = new Progress(new MaterialIcon("autorenew", 48));
add(spinner);
// 2) निर्धारित बार (0 से 100) — वास्तविक प्रगति के अनुसार अपडेट करें
Progress barra = new Progress(0f, 100f);
add(barra);
// ...जैसे-जैसे डाउनलोड आगे बढ़ता है:
barra.setValue(75f); // 75% भरा हुआ
// 3) अनिर्धारित (अनंत लूप) — बिना ज्ञात अंश
Progress infinito = new Progress(ProgressType.MATERIAL);
add(infinito);
// iOS शैली का गोलाकार spinner वेरिएंट:
Progress ios = new Progress(ProgressType.IOS);
add(ios);
सत्यापन नोट (कोड 2026). स्रोत में पुष्ट: तीनों कंस्ट्रक्टर
Progress(Icon),Progress(float min, float max)औरProgress(ProgressType), और उनसे व्युत्पन्नenum Progress.Mode { SPINNING_ICON, DETERMINATE_BAR, INDETERMINATE }।setValue[min, max]तक क्लैंप करता है औरprogress(अंश 0..1) अपडेट करता है।ProgressTypeUIConstantsमें मानोंIOS, FLUTTER, MATERIAL, STRIPEDके साथ है। परीक्षण परिवेश में (DeviceConfig.isTesting) एनिमेशन स्वतः शुरू नहीं होता।
और गहराई से जानें
- विजेट पृष्ठ: Progress · मूल स्रोत: अध्याय 14
- क्षणिक फीडबैक (त्वरित संदेश): mostrar-um-hint.md