草庐IT

Flutter Dialog 不尊重它的 child 的宽度

coder 2023-07-22 原文

我有一个以 CircularProgressIndicator 作为子项的简单对话框。
对话不尊重任何 child 的宽度。


一周前它运行良好,我没有对这段代码做任何更改,我只是升级了 flutter 版本,就发生了这种情况。我什至尝试降级我的 flutter 版本,但它都没有解决这个问题。
这是我的代码:

import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(home: DialogApp()));

class DialogApp extends StatefulWidget {
  @override
  _DialogAppState createState() => _DialogAppState();
}
class _DialogAppState extends State<DialogApp> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: RaisedButton(
          child: Text("Test"),
          onPressed: () {
            _showDialog();
          },
        ),
      ),
    );
  }
  Future<Null> _showDialog() async {
    await showDialog(
        context: context,
        builder: (BuildContext context) {
          return DialogWidget();
        });
  }
}
class DialogWidget extends StatefulWidget {
  @override
  _DialogWidgetState createState() => _DialogWidgetState();
}
class _DialogWidgetState extends State<DialogWidget> {
  @override
  Widget build(BuildContext context) {
    return Dialog(
      shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12.0)),
      child: AnimatedContainer(
        height: 60.0,
        width: 60.0,
        duration: Duration(milliseconds: 100),
        curve: Curves.ease,
        padding: EdgeInsets.all(10.0),
        child: CircularProgressIndicator(
            backgroundColor: Colors.transparent,
            valueColor: AlwaysStoppedAnimation<Color>(Colors.black)),
      ),
    );
  }
}

最佳答案

这里是解决方案,只需包装 CircularProgressIndicator,这样它就可以使用宽度和高度来包装内容。

child: Wrap(
          alignment: WrapAlignment.center,
          children: <Widget>[
            CircularProgressIndicator(
                backgroundColor: Colors.transparent,
                valueColor: AlwaysStoppedAnimation<Color>(Colors.black)),

          ],

        ),

关于Flutter Dialog 不尊重它的 child 的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57425755/

有关Flutter Dialog 不尊重它的 child 的宽度的更多相关文章

  1. ruby - 什么是 "terminated object",为什么我不能调用它的方法? - 2

    我会定期收到此异常:NotImplementedError:method`at'calledonterminatedobject在这行代码中:nextifHpricot(html).at('a')这个错误是什么意思?我该如何避免? 最佳答案 您正在使用的库使用自定义C扩展。在C扩展中,它试图在已被垃圾回收的Ruby对象上调用方法。这在纯Ruby中是不可能发生的,因为垃圾收集器只会释放不再能从任何引用中访问的对象。但在C语言中,可能会在垃圾收集器不检查的地方保留对Ruby对象的引用(例如,编译器可能已将变量放入CPU寄存器中)。

  2. ruby-on-rails - 为什么 Rails 在启动时预加载它的所有依赖项(gems)? - 2

    当Rails启动时,它会预加载所有依赖项(gems),这会导致启动时间非常缓慢。在我正在处理的一个中型项目中,Rails的启动时间为10-15秒,具体取决于机器。虽然这在生产中不是问题,但在开发中却是一个巨大的痛苦。特别是在工作TDD/BDD时。有加速测试的解决方案(如spork),但它们会引入自己的问题。我的问题是:为什么不在每个代码文件中要求所需的依赖项,而不是在启动时预加载所有内容?手动要求的缺点是什么?额外的代码行? 最佳答案 Rails不是PHP。一些资源是自动加载的,但是您可能需要的所有资源都在启动/初始化时加载,因为最

  3. Ruby:检查东亚宽度 (Unicode) - 2

    使用Ruby,我必须将字符串以柱状格式输出到终端。像这样:|row1|astringhere|etc|row2|anotherstring|etc我可以使用String#ljust和%s处理拉丁UTF8字符。但是当字符是韩文、中文等时就会出现问题。当英文行与包含韩文等的行交错时,列根本不会对齐。如何在此处实现列对齐?有没有办法以等同于固定宽度字体的方式输出亚洲字符?对于要在Vim中显示和编辑的文档怎么样? 最佳答案 您的问题发生在CJK(中文/日文/韩文)full-widthandwidecharacters(也向下滚动图表);这些

  4. c - ruby的rb_raise如何停止调用它的c函数的执行? - 2

    如果你在C中将一个ruby​​方法写成一个使用rb_raise的函数,调用后的函数部分将不会被执行,程序将停止,你会认为rb_raise使用了exit()。但是如果你在ruby​​中拯救异常,比如:beginmethod_that_raises_an_exceptionrescueendputs'Youwilstillgethere.'ruby代码将继续,但您的函数将停止执行。rb_raise如何实现这一目标? 最佳答案 推测它使用了setjmp(在调用方法之前)和longjmp(在rb_raise中)。

  5. ruby-on-rails - 如果我有一个来自收费的 Stripe token ,我如何获得它的收费 ID? - 2

    现在我正在使用我的Rails应用程序成功收费,但我想获取有关交易的某些详细信息,例如商品购买的描述和信用卡的最后四位数字,以显示给用户他们的收据页面。我一直在查看文档,但实际上没有任何内容可以解释如何为应用提供token并取回charge_id,然后我可以使用它来获取有关费用的其他信息的哈希值。任何帮助都是巨大的。谢谢! 最佳答案 Stripe在对费用创建调用的响应中返回费用ID。如果您使用的是Ruby库,则可以执行以下操作来获取ID:require"stripe"Stripe.api_key=''charge=Stripe::Ch

  6. ruby - 一个方法定义以括号开头,看不懂它的用处 - 2

    在Ruby中,我看到这样一个方法的定义:def[](param)#dostuffend这个方法声明是什么意思?它是如何工作的?什么时候使用它?以及如何使用实例对象调用此类方法? 最佳答案 这是方法的名称,[]。您可能已经知道Array#[]或Hash#[]。在您的类(class)中,您也可以定义这样的方法。它会做什么-由您决定。classFoodef[](param)#bodyendendf=Foo.newf[:some_value] 关于ruby-一个方法定义以括号开头,看不懂它的用处

  7. ruby - 如何在尊重隐私的情况下动态调用方法 - 2

    使用动态方法调用(#send或#method),方法的可见性将被忽略。有没有一种简单的方法可以动态调用调用私有(private)方法失败的方法? 最佳答案 据我所知-你需要public_send方法:-----------------------------------------------------Object#public_sendobj.public_send(symbol[,args...])=>objFromRuby1.9.1-----------------------------------------------

  8. ruby - 我如何在 Ruby 中计算字符串的宽度? - 2

    String.length只会告诉我字符串中有多少个字符。(其实在Ruby1.9之前,它只会告诉我多少个字节,这就更没用了。)我真的很想知道一个字符串有多少个“en”宽。例如:'foo'.width#=>3'moo'.width#=>3.5#m's,w's,etc.arewide'foi'.width#=>2.5#i's,j's,etc.arenarrow'foobar'.width#=>6.25#spacesareverynarrow如果我能得到字符串的第一个n就更好了:'foo'[0,2.en]#=>"fo"'filial'[0,3.en]#=>"fili"'foobarbaz'[

  9. ruby - 如何为 Ubuntu 打包 Ruby 应用程序,包括它的 gem 依赖项? - 2

    我有一个名为Maid的命令行实用程序我目前分发为aRubyGem.我还想将其作为.deb包分发tomakeiteasierforUbuntuuserstoinstall.现在,Ubuntu用户必须手动完成很多工作,尤其是对于不熟悉Ruby的人:sudoapt-getinstallrubysudoapt-getinstallrubygems#Makesure`ruby`and`gem`arein`$PATH`sudogeminstallmaidmaidversion#examplecommand理想情况下,我希望在全新的Ubuntu安装上安装一个命令:sudoapt-getinstall

  10. ruby - 在 Ruby 的正则表达式中,前瞻和后视概念如何支持这种零宽度断言概念? - 2

    我刚刚经历了这个概念Zero-WidthAssertions从文档中。我想到了一些快速的问题-为什么这样的名字Zero-WidthAssertions?Look-ahead怎么了和look-behind概念支持这样的Zero-WidthAssertions概念?什么这样的?,,=s,-4个符号在模式内指示?你能帮我集中精力了解实际发生的事情我还尝试了一些小代码来理解逻辑,但对它们的输出没有那么自信:irb(main):001:0>"foresight".sub(/(?!s)ight/,'ee')=>"foresee"irb(main):002:0>"foresight".sub(/(?

随机推荐