यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।
ActionSheet
ActionSheet iOS-शैली की एक्शन शीट है: एक गोल कार्ड जो स्क्रीन के आधार पर एंकर किया गया होता है, जिसमें विकल्प बटनों की सूची और नीचे अलग से एक Cancelar बटन होता है। जब विकल्प इतने अधिक हों कि समा न सकें, तो वे कई कॉलम में वितरित हो जाते हैं (maxColumns तक)। शीट के पीछे एक ग्रे “scrim” (fullscreenColor = 0xD0DDDDDD) होता है जो मोडल प्रभाव देता है।
🟢 · पैकेज:
dev.crossfly.ui· विस्तार करता है:Window· शैली:ComponentStyle/WindowStyle
कब उपयोग करें
- किसी आइटम पर संदर्भ-आधारित क्रियाओं का मेनू (शेयर करें, नाम बदलें, हटाएँ…)।
- जब आप iOS पैटर्न की तरह किसी विनाशकारी क्रिया (लाल) को दृश्य रूप से उभारना चाहें।
कब उपयोग न करें
- सरल हाँ/नहीं चयन या संदेश के साथ पुष्टि →
Alertका उपयोग करें। - निष्क्रिय/क्षणिक फीडबैक →
Hintका उपयोग करें।
दिखावट
स्क्रीन की चौड़ाई का ~92% वाला निचला कार्ड, जिसमें विकल्प ढेर किए गए हों, पतली रेखाओं से अलग किए गए हों, और ठीक नीचे पूरी तरह गोल Cancelar बटन हो। स्क्रीन की पृष्ठभूमि एक ग्रे scrim से ढकी रहती है।
संपूर्ण उदाहरण (कॉपी करें, पेस्ट करें और चलाएँ)
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());
Button abrir = new Button("Abrir folha de ações");
abrir.onAction(c ->
{
ActionSheet sheet = new ActionSheet("Cancelar", "Compartilhar", "Renomear", "Excluir");
sheet.buttonAction(0, origin -> { sheet.hide(); Hint.show("Compartilhar", 2000); });
sheet.buttonAction(1, origin -> { sheet.hide(); Hint.show("Renomear", 2000); });
sheet.buttonAction(2, origin -> { sheet.hide(); Hint.show("Excluído", 2000); });
// विनाशकारी क्रिया लाल रंग में
sheet.buttonStyle(2, ActionSheet.createDefaultButtonStyle().textColor(0xFFFF0000));
sheet.show();
});
add(LAY_AUTO, abrir);
}
}
नीचे दिए गए स्निपेट केवल मूल भाग दिखाते हैं (जो
onShow()के अंदर जाता है)। चलाने के लिए, इन्हें ऊपर दिएMainWindowकंकाल में रखें।
बुनियादी उपयोग
ActionSheet sheet = new ActionSheet("Cancelar", "Compartilhar", "Renomear", "Excluir");
sheet.buttonAction(0, origin -> { compartilhar(); sheet.hide(); });
sheet.buttonAction(1, origin -> { renomear(); sheet.hide(); });
sheet.buttonAction(2, origin -> { excluir(); sheet.hide(); });
sheet.show();
कंस्ट्रक्टर
| कंस्ट्रक्टर | विवरण |
|---|---|
ActionSheet(String cancelText, String... buttonTexts) |
cancelText (डिफ़ॉल्ट "Cancel") और विकल्पों के टेक्स्ट (खाली/null → {"OK"})। |
गुण और अनुकूलन
| गुण / मेथड | प्रकार | डिफ़ॉल्ट | क्या करता है |
|---|---|---|---|
buttonStyle(ComponentStyle) |
fluente | skin | सभी विकल्पों की डिफ़ॉल्ट शैली। |
buttonStyle(int index, ComponentStyle) |
fluente | — | किसी विशिष्ट विकल्प की शैली का ओवरराइड। |
buttonStyle(int index) |
ComponentStyle |
— | विकल्प की हल की गई शैली। |
cancelStyle(ComponentStyle) |
fluente | skin | Cancelar बटन की शैली। |
containerStyle(ComponentStyle) |
fluente | skin | कार्ड की शैली (किनारों का रेडियस)। |
maxColumns(int) |
fluente | 1 |
ओवरफ़्लो में अधिकतम कॉलम (>=1)। |
getButton(int) / getCancelButton() |
Button |
— | show()/onAdd के बाद के बटन। |
createDefaultButtonStyle() / createDefaultCancelStyle() / createDefaultContainerStyle() |
ComponentStyle (static) |
— | डिफ़ॉल्ट शैलियों की फ़ैक्ट्रियाँ। |
कॉलबैक और इवेंट
| कॉलबैक | कब ट्रिगर होता है |
|---|---|
buttonAction(int index, Component.Action action) |
विकल्प index (0-आधारित) टैप करने पर। |
cancelAction(Component.Action action) |
Cancelar बटन टैप करने पर। |
चूँकि
ActionSheetWindowका विस्तार करता है (Pickerका नहीं), प्रतिक्रिया इन कॉलबैक के माध्यम से आती है,show(onAnswer)से नहीं। कोईgetAnswer()नहीं है।Component.Actionका लैम्ब्डाvoid run(Component origin)है — कोई मान न लौटाएँ।
अवस्थाएँ
- कॉलबैक रहित विकल्प → डिफ़ॉल्ट क्रिया
hide()प्राप्त करता है (शीट बंद कर देता है)। - कॉलबैक सहित विकल्प → कॉलबैक चलाता है; यदि वह
hide()नहीं कॉल करता, तो शीट खुली रहती है। - scrim पर टैप (शीट के बाहर) या back → तब बंद होता है जब
canHideसक्रिय हो (डिफ़ॉल्ट)।
विनाशकारी क्रिया को उभारना और 2 कॉलम की अनुमति देना
ActionSheet sheet = new ActionSheet("Cancelar", "Compartilhar", "Renomear", "Excluir");
sheet.buttonAction(0, origin -> { compartilhar(); sheet.hide(); });
sheet.buttonAction(1, origin -> { renomear(); sheet.hide(); });
sheet.buttonAction(2, origin -> { excluir(); sheet.hide(); });
// विनाशकारी विकल्प लाल रंग में
sheet.buttonStyle(2, ActionSheet.createDefaultButtonStyle().textColor(0xFFFF0000));
// यदि बहुत सारे विकल्प हों तो 2 कॉलम तक की अनुमति दें
sheet.maxColumns(2);
sheet.show();
अच्छे तरीके
- संदर्भ-आधारित क्रियाओं के समूह के लिए उपयोग करें; सरल हाँ/नहीं के लिए
Alertको प्राथमिकता दें। - विनाशकारी क्रियाओं को
buttonStyle(index, ...)से लाल रंग में उभारें। - लंबी सूचियों में,
maxColumnsको कॉन्फ़िगर करें ताकि शीट स्क्रीन से बाहर न जाए।
सामान्य गलतियाँ
hide()के बिना कॉलबैक — शीट खुली रहती है; स्वचालितhide()तभी होता है जब कोई कॉलबैक पंजीकृत न हो।- लैम्ब्डा को मान लौटाना —
Component.Action.run(...)voidहै। show()से पहलेgetButton(i)एक्सेस करना — बटनonAddमें बनते हैं।