gpt4 book ai didi

flutter - 防止小部件填充在 Flutter 中扩展的祖先

转载 作者:行者123 更新时间:2023-12-03 13:29:45 28 4
gpt4 key购买 nike

我如何保留 RaisedButton从扩展到填充 Expanded包含它?我想创建三列宽度与可用空间成正比的列,但我希望每列中的子项是其自然大小,而不消耗其父项 Expanded 的整个宽度.

  Widget _controls(BuildContext cx) {
return Row(
children: [
Expanded(
flex: 1,
child: player.isOnFirstItem
? Container()
: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () => control.gotoPreviousItem(),
),
),
Expanded(
flex: 4,
child: player.isComplete()
? Text(player.currentItem.status) // I'll be adding more here
: RaisedButton(
child: Text(player.currentItem.actionText),
onPressed: () => player.currentItem.action(),
),
),
Expanded(
flex: 1,
child: player.isOnLastItem
? Container()
: IconButton(
icon: Icon(Icons.arrow_forward),
onPressed: () => player.gotoNextItem(),
),
),
],
);
RaisedButton当我进一步将它嵌套在 Container 中时,也会填充弹性空间.我无法弄清楚哪些属性可能会阻止这种情况。

四处寻找答案,似乎每个人都在努力实现相反的目标。

最佳答案

看看 Expanded 的文档是什么说:

A widget that expands a child of a Row, Column, or Flex so that the child fills the available space.



所以, RaisedButton将填充可用空间。

你试图用 Container 包裹按钮,但看看 Container 的文档说如果它有 child :

(in that case) the widget has a child but no height, no width, no constraints, and no alignment, and the Container passes the constraints from the parent to the child and sizes itself to match the child.



所以, RaisedButton将从 Container 的父级获取约束,即填充可用空间。

你需要的是包裹 RaisedButton小部件的大小不会与 child 的大小相匹配(因为它不会扩展)并且不会改变 child 的大小(因为 child 可以扩展)。

所以,一些小部件来包装 RaisedButton满足这些条件的可能是:
  • Row
  • Wrap
  • UnconstrainedBox
  • ColumnmainAxisSize: MainAxisSize.min
  • CenterheightFactor: 1.0 .
  • AlignheightFactor: 1.0 .
  • 关于flutter - 防止小部件填充在 Flutter 中扩展的祖先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58571305/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com