【问题标题】:How to dismiss the popup in xamarin forms?如何关闭 xamarin 表单中的弹出窗口?
【发布时间】:2019-05-24 06:35:16
【问题描述】:

如何关闭 xamarin 表单中的弹出窗口? 我通过调用显示警报弹出窗口

var actionButton2 = new Button { Text = "ActionSheet" };
actionButton2.Clicked += async (sender, e) => {
    var action = await DisplayActionSheet ("ActionSheet: Save Photo?", "Cancel", "Delete", "Photo Roll", "Email");
    Debug.WriteLine("Action: " + action); // writes the selected button label to the console
};

现在我怎样才能以编程方式关闭它?

【问题讨论】:

  • 只是为了澄清:在哪种情况下您想这样做?恕我直言,如果您显示 ActionSheet,您需要用户做出反应。
  • 就我而言,其他人关闭了对话框。用户 A 发送请求。用户 B 什么都不做。用户 A 结束请求。我想隐藏对用户 B 的请求。
  • 真正的答案是界面设计不佳。以这种方式运行的所有其他方法都有一个“异步”后缀,我使用的所有方法都有一个取消令牌选项,它可以在任何操作系统中使用。

标签: xamarin.forms


【解决方案1】:

你不能。

操作表是为用户交互设计的,而不是程序化交互。操作表的整个想法是,程序流程取决于此时的用户输入,如果没有此输入,将无法继续。

因此用户必须对操作表执行某些操作或通过按下硬件后退按钮将其关闭。

【讨论】:

  • 对不起,但这只是一个设计非常非常糟糕的界面,您的逻辑很幼稚。当您遇到通信错误时,我可以很容易地看到类似于弹出的错误消息,让用户可以选择退出应用程序,或者只是在错误清除之前等待。如果通信错误自行清除,您希望以编程方式关闭弹出警报。
【解决方案2】:

给出更详细的答案。

Xamarin.Forms 方法DisplayActionSheet 不支持dismiss,所以基本上你不能。然而,本机操作系统有自己的 DisplayActionSheet 映射到的方法。在 iOS 上不可能消除这样的警报,但在 Android 上是:How to remove AlertDialog programmatically。因此,如果您希望在 Android 上关闭对话框,这是可能的,但您需要使用本机方法来调用它。

【讨论】:

    猜你喜欢
    • 2020-03-21
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多