# ऐक्शन मेन्यू (ActionSheet) कैसे खोलें

> स्क्रीन के निचले हिस्से में iOS-शैली की ऐक्शन शीट दिखाएं, बटनों और एक Cancelar के साथ।

Source: https://crossfly.dev/hi/docs/cookbook/ui/menu-de-acoes — CrossFly documentation. Full docs as one file: https://crossfly.dev/llms-full.txt

# ऐक्शन मेन्यू (ActionSheet) कैसे खोलें

**उद्देश्य.** स्क्रीन के निचले हिस्से में एक गोल कार्ड में संदर्भगत क्रियाओं की सूची दिखाएं,
जिसके नीचे एक अलग "Cancelar" बटन हो (iOS मानक)। तब उपयोग करें जब उपयोगकर्ता को किसी आइटम
से संबंधित कई क्रियाओं में से चुनना हो ("Compartilhar", "Excluir"...)।

## प्रयुक्त APIs
- `new ActionSheet(String cancelText, String... buttonTexts)` — शीट बनाता है। **पहला आर्गुमेंट Cancelar का टेक्स्ट है**; बाकी विकल्प बटन हैं (इंडेक्स 0, 1, 2...)।
- `sheet.buttonAction(int index, Component.Action action)` — उस इंडेक्स के विकल्प बटन का कॉलबैक।
- `sheet.cancelAction(Component.Action action)` — Cancelar बटन का कॉलबैक (वैकल्पिक; डिफ़ॉल्ट रूप से केवल बंद करता है)।
- `sheet.buttonStyle(int index, ComponentStyle style)` — प्रति बटन शैली (उदा.: "Excluir" को लाल रंग में रंगना)।
- `sheet.buttonStyle(ComponentStyle style)` — सभी विकल्प बटनों के लिए डिफ़ॉल्ट शैली।
- `sheet.cancelStyle(ComponentStyle style)` / `sheet.containerStyle(ComponentStyle style)` — Cancelar और कंटेनर कार्ड की शैलियाँ।
- `sheet.maxColumns(int cols)` — जब बहुत सारे बटन हों तो अधिकतम कॉलमों की संख्या (डिफ़ॉल्ट 1; केवल 1 से अधिक पर प्रभाव डालता है)।
- `ActionSheet.createDefaultButtonStyle()` — तैयार आधार शैली (सफ़ेद पृष्ठभूमि, नीला टेक्स्ट, `pressable`) जिसे आप कॉपी करके संशोधित कर सकते हैं।
- `sheet.show()` — दिखाता है (`Window` से विरासत में मिला)।

> गैर-स्पष्ट व्यवहार: `Alert` की तरह, बिना `buttonAction` वाले बटन छूने पर केवल शीट को
> बंद कर देते हैं। Cancelar भी डिफ़ॉल्ट रूप से बंद कर देता है।

## पूरा उदाहरण (कॉपी करें, पेस्ट करें और चलाएं)
```java
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());

      // ट्रिगर बटन: स्पर्श करने पर ActionSheet खोलता है
      Button btn = new Button("Opções");
      btn.onAction(origin ->
      {
         ActionSheet sheet = new ActionSheet(
            "Cancelar",      // रद्द करें बटन का टेक्स्ट (पहला तर्क)
            "Compartilhar",  // इंडेक्स 0
            "Excluir");      // इंडेक्स 1

         sheet.buttonAction(0, o ->
         {
            compartilhar();
            sheet.hide();
         });

         // विनाशकारी क्रिया को लाल रंग में हाइलाइट करें
         sheet.buttonStyle(1, ActionSheet.createDefaultButtonStyle().textColor(0xFFFF0000));
         sheet.buttonAction(1, o ->
         {
            excluir();
            sheet.hide();
         });

         sheet.show();
      });
      add(LAY_FILL, btn);
   }

   private void compartilhar()
   {
      // ... आपका साझा करने का तर्क ...
   }

   private void excluir()
   {
      // ... आपका हटाने का तर्क ...
   }
}
```

> नीचे का अंश **केवल मुख्य भाग** दिखाता है। चलाने के लिए, इसे ऊपर दिए गए `MainWindow` ढाँचे में रखें।

## न्यूनतम अंश
```java
ActionSheet sheet = new ActionSheet(
   "Cancelar",      // रद्द करें बटन का टेक्स्ट (पहला तर्क)
   "Compartilhar",  // इंडेक्स 0
   "Excluir");      // इंडेक्स 1

sheet.buttonAction(0, origin ->
{
   compartilhar();
   sheet.hide();
});

// विनाशकारी क्रिया को लाल रंग में हाइलाइट करें
sheet.buttonStyle(1, ActionSheet.createDefaultButtonStyle().textColor(0xFFFF0000));
sheet.buttonAction(1, origin ->
{
   excluir();
   sheet.hide();
});

sheet.show();
```

> **सत्यापन नोट (कोड 2026).** स्रोत में पुष्ट: `ActionSheet(cancelText, String... buttonTexts)`,
> `buttonAction(int, Action)`, `cancelAction(Action)`, और `buttonStyle(int, ComponentStyle)`,
> `buttonStyle(ComponentStyle)`, `maxColumns(int)` मौजूद हैं। डिफ़ॉल्ट दृश्य (iOS कार्ड)
> Skin से स्वतंत्र रूप से लागू होता है, परंतु `defaultStyleCreate()` विंडो के लिए
> `getSkin().actionSheet()` का उपयोग करता है। डिफ़ॉल्ट चौड़ाई स्क्रीन की ~92% है (`widthRatio ≈ .92f`)।

## और गहराई से जानें
- विजेट पृष्ठ: [ActionSheet](/docs/ui/widgets/actionsheet) · मूल स्रोत: अध्याय 16
- सहोदर रेसिपी: [Alert से पुष्टि करना](/docs/cookbook/ui/confirmar-com-alert) · [Hint दिखाना](/docs/cookbook/ui/mostrar-um-hint)
