问题标签 [flutter-dialog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3577 浏览

flutter - 如何在 Flutter 中离开屏幕前显示确认对话框

我想在处理或离开屏幕之前或最近显示警告 SnackBar 之前显示警报对话框,我该怎么做?

我知道如何显示对话框和 SnackBar,但我不知道我在哪里执行此操作,或者我何时尝试在处理生命钩子时执行此操作,但它会出错。由于上下文在显示对话框之前被处理。

0 投票
2 回答
2553 浏览

flutter - 在处理当前小部件之前“仅”关闭所有对话框和弹出窗口,不应删除其他小部件

我一直在做一个项目,该项目需要我根据移动设备的orientation.

例如,在portrait方向的情况下,我需要显示一个小部件(比如说纵向小部件),而在landscape方向的情况下,我需要显示另一个小部件(我们称之为横向小部件)。

我用过OrientationBuilder

实际问题:在方向更改时,所有DialogsOptionMenu或任何其他 Popup 类型的 Widget 都没有关闭。如何在方向更改时关闭它们?

重现问题的步骤:

  1. 运行下面给出的应用程序代码 [重现问题的示例应用程序]
  2. 长按应用程序主体以查看对话框或单击OptionMenu左上角
  3. 更改设备方向,您会看到小部件主体已根据方向更改,但Popuped小部件仍然可见。

注意:请注意,我需要针对此问题的全局解决方案。仅针对此代码提供解决方案对我没有任何用处。这是我为更好地理解问题而提供的示例代码,我根本不使用此代码。

示例应用代码:

我找不到任何可行的解决方案。有一些解决方案需要监听方向变化和基于新方向的推送/弹出小部件。

但它有点太多了,需要在纵向和横向小部件中添加相同类型的代码。如果我需要处理反向纵向和反向横向等附加方向,这也是不可扩展的。

更新

可行的解决方案之一是弹出所有小部件直到根小部件,然后根据方向推送新的小部件。这有效,但有副作用。

例如,如果我从纵向推送一些新小部件(假设是登录页面)。

然后,如果我将我的设备旋转到横向,它应该在横向模式下膨胀登录页面 UI,但根据弹出所有小部件直到根目录的代码。

我将看到的是横向小部件,而不是横向模式下的登录页面。

为了清楚起见

我正在寻找一个答案来关闭所有打开的对话框/弹出窗口,然后它的父小部件是disposed. 该解决方案不应依赖于从导航器中弹出整个小部件。

我从小部件树表示中发现的是,显示为弹出窗口(弹出菜单或对话框)的小部件与MaterialApp.

查看这些屏幕截图:

横向小部件中的可见弹出菜单:

横向小部件中的弹出菜单

Landscape小部件中的可见对话框:

横向小部件中的对话框

肖像小部件中的可见弹出菜单:

肖像小部件中的弹出菜单

Portrait 小部件中的可见对话框:

肖像小部件中的对话框

所以,基本上我正在寻找一种方法来查找和弹出所有这些类型的小部件,我们可以在处理父小部件之前弹出这些小部件。我想这应该适用于所有小部件屏幕,并且不应该改变当前小部件上方的现有小部件树。

更新 2

我得到了一个成功删除对话框和弹出窗口的答案,但它有一个副作用,即在删除所有对话框/弹出窗口的同时,它还删除了添加在显示弹出窗口的根小部件顶部的任何小部件。

例如:在此示例中,考虑我从小portrait部件访问的详细信息页面。因此,当小部件重建时,即使我没有打开任何对话框/弹出窗口,也会portrait处理详细信息页面并且仅再次显示。portrait

0 投票
1 回答
1672 浏览

flutter - 如何在 Flutter 中自动关闭对话框警报小部件?

如果这是一个菜鸟问题或代码看起来太基本,请原谅我,我是新手。我已经完成了相当多的谷歌搜索,但我还没有找到解决方案。

一旦未来功能开始,我想显示加载警报。处理 API 请求/响应时,如果发生错误,则应在 showErrorDialog 中显示,并且 LoadingDialog 应自动关闭。

现在,ErrorDialog 显示并可以使用其按钮将其关闭,但是 LoadingDialog 不会被关闭。

我可以用 Future.delayed 来做到这一点,但这只是一种解决方法,它有太多可变的结果。这是虚拟代码:

0 投票
1 回答
326 浏览

flutter - Flutter 在 showGeneralDialog 中插入 ListView

Flutter我想显示简单的ListView内部showGeneralDialog对话框。但我收到此错误:

0 投票
1 回答
401 浏览

android - 无法使 showDialog 的背景透明

我试图在发出 http 请求时弹出对话框,为此我创建了在屏幕上显示对话框的函数。

这是我的代码。

并像下面这样调用它:

输出如下图。

在此处输入图像描述

如您所见,在中心显示了矩形白色背景形状的框。我想删除那个白色背景。

我也尝试设置backgroundColor: Colors.transparent,但它不起作用。它看起来更有线的 UI。 在此处输入图像描述

只想显示加载器和对话框文本。

0 投票
1 回答
783 浏览

flutter - Flutter 显示全屏对话框

我有以下功能来显示一个对话框,我使用媒体查询将其设置为 100%,但是当它运行时,我仍然看到对话框周围的白边。

如何归档全屏对话框?

0 投票
2 回答
2086 浏览

flutter - 如何在颤动中显示没有上下文的对话框

我试图使用 Firebase 云评估,在此过程中,我只想在推送通知到达时向用户显示一个弹出对话框。showDialog但是为了显示对话,我们需要将上下文对象作为is的参数之一BuildContext

我尝试了很多方法,但没有奏效。截至目前,我的代码如下所示:

注意:此代码是在一个单独的类中编写的,我试图在没有任何第三部分库的情况下实现它。

0 投票
2 回答
557 浏览

flutter - 有没有办法检测是否有任何打开的抽屉?

我有一个显示动画的 Flutter 应用程序。showModalBottomSheet如果应用程序中的任何位置显示打开的抽屉或模式对话框(如 ),我希望动画暂停。

我可以直接处理特定抽屉的事件并自己管理状态。但是,我的应用程序中有多个抽屉需要跟踪,感觉工作量很大。是否有一个全局位置,我可以检查抽屉(或模式对话框)是否在应用程序的任何位置打开?

0 投票
1 回答
134 浏览

ios - Flutter:用警报对话框替换底部对话框

当我单击底部对话框的一个选项时,我希望底部对话框被一个警报对话框替换,这是我的 onTap 的功能代码:

0 投票
0 回答
498 浏览

flutter - 在提供程序中更改值时显示 showDialog

我的模型类中有一个扩展 ChangeNotifier 的布尔变量,当这个变量的值发生变化时,我想显示一个对话框并在它变为 false 时弹出这个对话框。我正在使用的代码:

当我将 processingFiles 设置为 true 时,我想显示一个 alertDialog。