草庐IT

dart - flutter 下拉按钮引发异常

coder 2023-05-09 原文

我正在尝试向我的应用程序添加一个 DropdownButton,但它没有被渲染,出现“底部被无限像素溢出”消息,我尝试将它放在 SizeBox、Paddign、ConstrainedBox、Row 中,但没有任何效果,请参阅代码:

@override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text(
          'Configurações',
          style: TextStyle(color: Colors.white),
        ),
        actions: <Widget>[new IconButton(icon: new Icon(Icons.check), onPressed: _salvar)],
      ),
      body: new Container(
        color: Colors.orange[50],
        padding: EdgeInsets.all(16.0),
        child: new Form(
          child: new Column(
            children: <Widget>[
              new TextFormField(
                decoration: new InputDecoration(labelText: 'Código da empresa'),
                //border: OutlineInputBorder()
                autofocus: true,
                controller: _edCodigoEmpresa,
                keyboardType: TextInputType.numberWithOptions(),
              ),
              new TextFormField(
                decoration: new InputDecoration(labelText: 'Código do funcionário'),
                controller: _edCodigoFuncionario,
                keyboardType: TextInputType.numberWithOptions(),
              ),
              new DropdownButton(
                value: _baseSelecionada,
                items: _basesCliente,
                onChanged: _baseChange,
              )
            ],
          ),
        ),
      ),
    );
  }
}

但是当你运行应用程序时,会出现以下错误信息:

I/flutter (16684): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter (16684): The following assertion was thrown during performLayout():
I/flutter (16684): RenderIndexedStack object was given an infinite size during layout.
I/flutter (16684): This probably means that it is a render object that tries to be as big as possible, but it was put
I/flutter (16684): inside another render object that allows its children to pick their own size.
I/flutter (16684): The nearest ancestor providing an unbounded width constraint is:
I/flutter (16684):   RenderFlex#b60e0 relayoutBoundary=up9 NEEDS-LAYOUT NEEDS-PAINT
I/flutter (16684):   creator: Row ← Padding ← Container ← DefaultTextStyle ← Stack ← Listener ← _GestureSemantics ←
I/flutter (16684):   RawGestureDetector ← GestureDetector ← Semantics ← DropdownButton<String> ← Column ← ⋯
I/flutter (16684):   parentData: offset=Offset(0.0, 0.0) (can use size)
I/flutter (16684):   constraints: BoxConstraints(0.0<=w<=328.0, 0.0<=h<=Infinity)
I/flutter (16684):   size: Size(328.0, Infinity)
I/flutter (16684):   direction: horizontal
I/flutter (16684):   mainAxisAlignment: spaceBetween
I/flutter (16684):   mainAxisSize: min
I/flutter (16684):   crossAxisAlignment: center
I/flutter (16684):   textDirection: ltr
I/flutter (16684):   verticalDirection: down
I/flutter (16684): The nearest ancestor providing an unbounded height constraint is:
I/flutter (16684):   RenderFlex#783bc relayoutBoundary=up3 NEEDS-LAYOUT NEEDS-PAINT OVERFLOWING
I/flutter (16684):   creator: Column ← _FormScope ← WillPopScope ← Form ← Padding ← DecoratedBox ← Container ←
I/flutter (16684):   MediaQuery ← LayoutId-[<_ScaffoldSlot.body>] ← CustomMultiChildLayout ← AnimatedBuilder ←
I/flutter (16684):   DefaultTextStyle ← ⋯
I/flutter (16684):   parentData: offset=Offset(16.0, 16.0) (can use size)
I/flutter (16684):   constraints: BoxConstraints(0.0<=w<=328.0, 0.0<=h<=528.0)
I/flutter (16684):   size: Size(328.0, 528.0)
I/flutter (16684):   direction: vertical
I/flutter (16684):   mainAxisAlignment: start
I/flutter (16684):   mainAxisSize: max
I/flutter (16684):   crossAxisAlignment: center
I/flutter (16684):   verticalDirection: down
I/flutter (16684): The constraints that applied to the RenderIndexedStack were:
I/flutter (16684):   BoxConstraints(unconstrained)
I/flutter (16684): The exact size it was given was:
I/flutter (16684):   Size(Infinity, Infinity)
I/flutter (16684): See https://flutter.io/layout/ for more information.
I/flutter (16684): 
I/flutter (16684): When the exception was thrown, this was the stack:
I/flutter (16684): #0      RenderBox.debugAssertDoesMeetConstraints.<anonymous closure> (package:flutter/src/rendering/box.dart:1749:9)
I/flutter (16684): #1      RenderBox.debugAssertDoesMeetConstraints (package:flutter/src/rendering/box.dart:1823:6)
I/flutter (16684): #2      RenderBox.size=.<anonymous closure> (package:flutter/src/rendering/box.dart:1543:17)
I/flutter (16684): #3      RenderBox.size= (package:flutter/src/rendering/box.dart:1543:65)
I/flutter (16684): #4      RenderStack.performLayout (package:flutter/src/rendering/stack.dart:480:7)
I/flutter (16684): #5      RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #6      RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:738:15)
I/flutter (16684): #7      RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #8      RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:199:11)
I/flutter (16684): #9      RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #10     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:510:15)
I/flutter (16684): #11     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #12     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #13     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #14     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #15     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #16     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #17     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #18     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:738:15)
I/flutter (16684): #19     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #20     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:199:11)
I/flutter (16684): #21     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #22     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #23     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #24     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:141:11)
I/flutter (16684): #25     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:339:7)
I/flutter (16684): #26     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:211:7)
I/flutter (16684): #27     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:355:14)
I/flutter (16684): #28     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #29     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #30     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #31     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #32     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1188:11)
I/flutter (16684): #33     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #34     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #35     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #36     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #37     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #38     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #39     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #40     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #41     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #42     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #43     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #44     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #45     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #46     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #47     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #48     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #49     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:2880:13)
I/flutter (16684): #50     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #51     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:510:15)
I/flutter (16684): #52     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #53     __RenderTheatre&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #54     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #55     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #56     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #57     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #58     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #59     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #60     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #61     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:13)
I/flutter (16684): #62     RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
I/flutter (16684): #63     RenderView.performLayout (package:flutter/src/rendering/view.dart:147:13)
I/flutter (16684): #64     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1507:7)
I/flutter (16684): #65     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:766:18)
I/flutter (16684): #66     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:281:19)
I/flutter (16684): #67     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:674:13)
I/flutter (16684): #68     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:219:5)
I/flutter (16684): #69     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
I/flutter (16684): #70     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
I/flutter (16684): #71     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:751:7)
I/flutter (16684): #73     _Timer._runTimers (dart:isolate/runtime/libtimer_impl.dart:382:19)
I/flutter (16684): #74     _Timer._handleMessage (dart:isolate/runtime/libtimer_impl.dart:416:5)
I/flutter (16684): #75     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
I/flutter (16684): (elided one frame from package dart:async)
I/flutter (16684): 
I/flutter (16684): The following RenderObject was being processed when the exception was fired:
I/flutter (16684):   RenderIndexedStack#b8a3e relayoutBoundary=up10 NEEDS-LAYOUT NEEDS-PAINT
I/flutter (16684):   creator: IndexedStack ← Row ← Padding ← Container ← DefaultTextStyle ← Stack ← Listener ←
I/flutter (16684):   _GestureSemantics ← RawGestureDetector ← GestureDetector ← Semantics ← DropdownButton<String> ← ⋯
I/flutter (16684):   parentData: offset=Offset(0.0, 0.0); flex=null; fit=null (can use size)
I/flutter (16684):   constraints: BoxConstraints(unconstrained)
I/flutter (16684):   size: Size(Infinity, Infinity)
I/flutter (16684):   alignment: AlignmentDirectional.centerStart
I/flutter (16684):   textDirection: ltr
I/flutter (16684):   fit: loose
I/flutter (16684):   overflow: clip
I/flutter (16684):   index: null
I/flutter (16684): This RenderObject has no descendants.
I/flutter (16684): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter (16684): Another exception was thrown: RenderFlex object was given an infinite size during layout.
I/flutter (16684): Another exception was thrown: RenderPadding object was given an infinite size during layout.
I/flutter (16684): Another exception was thrown: RenderStack object was given an infinite size during layout.
I/flutter (16684): Another exception was thrown: RenderPointerListener object was given an infinite size during layout.
I/flutter (16684): Another exception was thrown: RenderSemanticsGestureHandler object was given an infinite size during layout.
I/flutter (16684): Another exception was thrown: RenderSemanticsAnnotations object was given an infinite size during layout.
I/flutter (16684): Another exception was thrown: NoSuchMethodError: The method '<=' was called on null.
I/flutter (16684): Another exception was thrown: A RenderFlex overflowed by Infinity pixels on the bottom.

谁能帮帮我?

最佳答案

我使用了一个 ConstrainedBox 来设置一个 maxHeight,但它仍然向右无限溢出。我必须设置 isExpanded: true 然后将 ConstrainedBox 包装在 Row -> Expanded 内。

Column(
  children: <Widget>[
    Row(
      children: <Widget>[
        Expanded(
          child: ConstrainedBox(
            constraints: const BoxConstraints(maxHeight: 48.0),
            child: DropdownButton<String>(
              isExpanded: true, ...
            )
          )
        )
      ]
    )
  ]
)

关于dart - flutter 下拉按钮引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53311137/

有关dart - flutter 下拉按钮引发异常的更多相关文章

  1. ruby-on-rails - Rails - 乐观锁定总是触发 StaleObjectError 异常 - 2

    我正在学习Rails,并阅读了关于乐观锁的内容。我已将类型为integer的lock_version列添加到我的articles表中。但现在每当我第一次尝试更新记录时,我都会收到StaleObjectError异常。这是我的迁移:classAddLockVersionToArticle当我尝试通过Rails控制台更新文章时:article=Article.first=>#我这样做:article.title="newtitle"article.save我明白了:(0.3ms)begintransaction(0.3ms)UPDATE"articles"SET"title"='dwdwd

  2. ruby - #之间? Cooper 的 *Beginning Ruby* 中的错误或异常 - 2

    在Cooper的书BeginningRuby中,第166页有一个我无法重现的示例。classSongincludeComparableattr_accessor:lengthdef(other)@lengthother.lengthenddefinitialize(song_name,length)@song_name=song_name@length=lengthendenda=Song.new('Rockaroundtheclock',143)b=Song.new('BohemianRhapsody',544)c=Song.new('MinuteWaltz',60)a.betwee

  3. ruby - 在 Ruby 中重新分配常量时抛出异常? - 2

    我早就知道Ruby中的“常量”(即大写的变量名)不是真正常量。与其他编程语言一样,对对象的引用是唯一存储在变量/常量中的东西。(侧边栏:Ruby确实具有“卡住”引用对象不被修改的功能,据我所知,许多其他语言都没有提供这种功能。)所以这是我的问题:当您将一个值重新分配给常量时,您会收到如下警告:>>FOO='bar'=>"bar">>FOO='baz'(irb):2:warning:alreadyinitializedconstantFOO=>"baz"有没有办法强制Ruby抛出异常而不是打印警告?很难弄清楚为什么有时会发生重新分配。 最佳答案

  4. ruby-on-rails - Capybara-webkit 引发 Capybara::Driver::Webkit::WebkitInvalidResponseError - 2

    我在rspec中收到来自webkit驱动程序的以下消息:Capybara::Driver::Webkit::WebkitInvalidResponseError:UnabletoloadURL:http://127.0.0.1:44923/posts几天前它成功了。问题出在save_page方法上。有什么问题吗? 最佳答案 当我的页面出现错误时,我收到过类似的错误消息。您应该通过在测试模式下启动服务器(railss-etest)并自行访问页面来手动检查情况是否如此。 关于ruby-on-

  5. SPI接收数据异常问题总结 - 2

    SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手

  6. ruby-on-rails - Rails 单选按钮 - 模型中多列的一种选择 - 2

    我希望用户从一个模型的三个选项中选择一个。即我有一个模型视频,可以被评为正面/负面/未知目前我有三列bool值(pos/neg/unknown)。这是处理这种情况的最佳方式吗?为此,表单应该是什么样的?目前我有类似的东西但显然它允许多项选择,而我试图将它限制为只有一个..怎么办? 最佳答案 如果要使用字符串列,让我们说rating。然后在你的表单中:#...#...它只允许一个选择编辑完全相同但使用radio_button_tag: 关于ruby-on-rails-Rails单选按钮-模

  7. ruby-on-rails - ActiveAdmin 自定义选择过滤器下拉名称 - 2

    对于用户模型,我有一个过滤器来检查用户的预订状态,该状态由整数值(0、1或2)表示。UserActiveAdmin索引页上的过滤器是通过以下代码实现的:filter:booking_status,as::select然而,这会导致下拉选项为0、1或2。当管理员用户从下拉列表中选择它们时,我更愿意自己将它们命名为“未完成”、“待定”和“已确认”之类的名称。有没有办法在不改变booking_status在模型中的表示方式的情况下做到这一点? 最佳答案 假设booking_status是模型中的枚举字段,您可以使用:过滤器:booking

  8. ruby - 如何捕获 ruby​​ 中的所有异常? - 2

    我们如何捕获或/和处理ruby​​中所有未处理的异常?例如,这样做的动机可能是将某种异常记录到不同的文件或发送电子邮件给系统管理。在Java中我们会做Thread.setDefaultUncaughtExceptionHandler(UncaughtExceptionHandlerex);在Node.js中process.on('uncaughtException',function(error){/*code*/});在PHP中register_shutdown_function('errorHandler');functionerrorHandler(){$error=error_

  9. ruby - Sinatra 中的全局救援和日志记录异常 - 2

    如何在出现异常时指定全局救援,如果您将Sinatra用于API或应用程序,您将如何处理日志记录? 最佳答案 404可以在not_found方法的帮助下处理,例如:not_founddo'Sitedoesnotexist.'end500s可以通过调用带有block的错误方法来处理,例如:errordo"Applicationerror.Plstrylater."end错误的详细信息可以通过request.env中的sinatra.error访问,如下所示:errordo'Anerroroccured:'+request.env['si

  10. ruby-on-rails - 如何从按钮或链接单击的 View 调用 Rails 方法 - 2

    基本上,我试图在用户单击链接(或按钮或某种类型的交互元素)时执行Rails方法。我试着把它放在View中:但这似乎没有用。它最终只是在用户甚至没有点击“添加”链接的情况下调用该函数。我也用link_to试过了,但也没用。我开始认为没有一种干净的方法可以做到这一点。无论如何,感谢您的帮助。附言。我在ApplicationController中定义了该方法,它是一个辅助方法。 最佳答案 View和Controller是相互独立的。为了使链接在Controller内执行函数调用,您需要对应用程序中的端点执行ajax调用。该路由应调用rub

随机推荐