我想在 Flutter 中创建一个 Row,它的最高子元素的高度最大。然后其他较小的 child 应该在可用空间中拉伸(stretch)。
我尝试在 Row 上使用 CrossAxisAlignment.stretch 和 MainAxisSize.min:
Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.min,
children: [
Container(child: Text("1")),
Container(child: SizedBox(height: 200))
]);
在这种情况下,带有 Text 的 Container 应该拉伸(stretch)到与带有 SizedBox.Container 一样高
但是这会导致运行时异常:
flutter: The following RenderObject was being processed when the exception was fired:
flutter: RenderFlex#93aae relayoutBoundary=up5 NEEDS-LAYOUT NEEDS-PAINT
flutter: creator: Row ← Column ← Column ← Padding ← Expanded ← Row ← Builder ← MediaQuery ←
flutter: LayoutId-[<_ScaffoldSlot.body>] ← CustomMultiChildLayout ← AnimatedBuilder ← DefaultTextStyle ← ⋯
flutter: parentData: offset=Offset(0.0, 0.0); flex=null; fit=null (can use size)
flutter: constraints: BoxConstraints(0.0<=w<=174.3, 0.0<=h<=Infinity)
flutter: size: MISSING
flutter: direction: horizontal
flutter: mainAxisAlignment: spaceBetween
flutter: mainAxisSize: min
flutter: crossAxisAlignment: stretch
flutter: textDirection: ltr
flutter: verticalDirection: down
flutter: This RenderObject had the following descendants (showing up to depth 5):
flutter: RenderDecoratedBox#2c670 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderPadding#94471 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderPositionedBox#38d50 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderFlex#c2d46 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderPadding#e6dc8 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderParagraph#d7b38 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderConstrainedBox#a7e45 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderDecoratedBox#31487 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderPadding#0cf57 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderPositionedBox#df396 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderParagraph#868d2 NEEDS-LAYOUT NEEDS-PAINT
如果我是对的,那么这个异常告诉我 Row 正试图扩展到无穷大,因为它不受约束。
在 SizedBox(height: x) 小部件中包装 Row 时,我没有遇到异常,但这不是我想要实现的。
是否有一些小部件或技巧可以帮助我解决问题?
最佳答案
考虑显示一个未知大小不同的红色和黄色容器的行:
Row(
children: <Widget>[
red,
yellow,
],
),
要达到预期的结果,您需要做两件事:
CrossAxisAlignment.strectch。这要求所有 child 采用相同的高度 - 并使行垂直填充其父级Row 包装到 IntrinsicHeight 小部件中。此小部件强制其子项采用尽可能少的高度。最终结果是:
IntrinsicHeight(
child: Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
red,
yellow,
],
),
)
关于dart - 与最高 child 一样高并允许其他 child CrossAxisAlignment.stretch 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55194872/
我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
我正在处理旧代码的一部分。beforedoallow_any_instance_of(SportRateManager).toreceive(:create).and_return(true)endRubocop错误如下:Avoidstubbingusing'allow_any_instance_of'我读到了RuboCop::RSpec:AnyInstance我试着像下面那样改变它。由此beforedoallow_any_instance_of(SportRateManager).toreceive(:create).and_return(true)end对此:let(:sport_
我需要一些关于TDD概念的帮助。假设我有以下代码defexecute(command)casecommandwhen"c"create_new_characterwhen"i"display_inventoryendenddefcreate_new_character#dostufftocreatenewcharacterenddefdisplay_inventory#dostufftodisplayinventoryend现在我不确定要为什么编写单元测试。如果我为execute方法编写单元测试,那不是几乎涵盖了我对create_new_character和display_invent
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
我正在使用DMOZ的listofurltopics,其中包含一些具有包含下划线的主机名的url。例如:608609TheOuterHeaven610InformationandimagegalleryofMcFarlane'sactionfiguresforTrigun,Akira,TenchiMuyoandotherJapaneseSci-Fianimations.611Top/Arts/Animation/Anime/Collectibles/Models_and_Figures/Action_Figures612虽然此url可以在网络浏览器中使用(或者至少在我的浏览器中可以使用:
我读过这个:Let’sstartwithasimpleRubyprogram.We’llwriteamethodthatreturnsacheery,personalizedgreeting.defsay_goodnight(name)result="Goodnight,"+namereturnresultend我的理解是,方法是定义在类中的函数或子程序,可以关联到类(类方法)或对象(实例方法)。那么,如果它不是在类中定义的,怎么可能是方法呢? 最佳答案 当你在Ruby中以这种方式在全局范围内定义一个函数时,它在技术上变成了Obje
我需要做这样的事情classUser'User',:foreign_key=>'abuser_id'belongs_to:gameendclassGame['JOINabuse_reportsONusers.id=abuse_reports.abuser_id','JOINgamesONgames.id=abuse_reports.game_id'],:group=>'users.id',:select=>'users.*,count(distinctgames.id)ASgame_count,count(abuse_reports.id)asabuse_report_count',:
我最近从C#转向了Ruby,我发现自己无法制作可折叠的标记代码区域。我只是想到做这种事情应该没问题:classExamplebegin#agroupofmethodsdefmethod1..enddefmethod2..endenddefmethod3..endend...但是这样做真的可以吗?method1和method2最终与method3是同一种东西吗?还是有一些我还没有见过的用于执行此操作的Ruby惯用语? 最佳答案 正如其他人所说,这不会改变方法定义。但是,如果要标记方法组,为什么不使用Ruby语义来标记它们呢?您可以使用
我在Rails模型中有两列相互关联:Article.bodyArticle.body_updated_on每次Article.body更新时,我想将Article.body_updated_on更改为Time.now。如果任何其他字段已更新,则无需进行任何操作。 最佳答案 只需在将回调保存到您的文章模型之前添加classArticle 关于ruby-on-rails-RubyonRails,在更新其他列值时更改列值,我们在StackOverflow上找到一个类似的问题: