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

2024-02-17

我如何保留一个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(),
                ),
        ),
      ],
    );

The RaisedButton当我进一步将其嵌套在 a 中时,也会填充弹性空间Container。我不知道哪些属性可能会阻止这种情况。

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


看看文档是什么Expanded says:

扩展 Row、Column 或 Flex 子级的小部件,以便 孩子填满了可用空间。

So, the RaisedButton将填充可用空间。

您尝试将按钮包裹起来Container,但是看看文档是什么Container说如果它有一个孩子:

(在这种情况下)小部件有一个子部件,但没有高度,没有宽度,没有约束,也没有 对齐,容器将约束从父级传递给 孩子并调整自身大小以匹配孩子。

So, the RaisedButton将从父级接受约束Container,即填充可用空间。

你需要的是包裹RaisedButton使用一个小部件,其自身大小不会与子项的大小相匹配(因为它不会扩展),并且不会改变子项的大小(因为子项可以扩展)。

所以,一些小部件来包装RaisedButton满足这些条件的可能是:

  • Row
  • Wrap
  • UnconstrainedBox
  • Column with mainAxisSize: MainAxisSize.min
  • Center with heightFactor: 1.0.
  • Align with heightFactor: 1.0.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

防止小部件填充 Flutter 中扩展的祖先 的相关文章

随机推荐

  • ASP.NET MVC RenderAction 中的以下方法或属性之间的调用不明确

    在我安装 ASP NET MVC 1 0 RTM 之前 该调用工作正常 Error CS0121 The call is ambiguous between the following methods or properties 代码片段
  • 将 Fetch 与授权标头和 CORS 结合使用

    我正在尝试让我的请求通过一个在线游戏 API 但我似乎无法正常工作 我正在使用FetchAPI 以及一些请求需要授权承载令牌 但请求永远不会与授权标头一起发送 我努力了 mode no cors credentials include 显然
  • Keras model.predict() 在第一次迭代时较慢,然后变得更快

    我正在尝试跑步model predict 在 for 循环中多次并计时在同一图像上花费的时间 该数据将用于计算运行预测所需时间的平均值 如果我在单独的脚本中运行预测 它将在我的 MacBook 上运行大约 300 毫秒 如果我随后在 for
  • Buildozer 构建在 NDK 构建时失败,给出 SDL_JAVA_PACKAGE_PATH 错误

    使用 Kivy 的 VM 2 0 设置时 Buildozer 0 34 会失败并出现此错误 我能够在 Ubuntu 16 04 中的不相关环境 无虚拟机 和相同的规范文件中复制它 日志输出 信息 标准输出 build app name an
  • 如何扩展操作栏中的导航列表?

    在 android 中 您可以通过传递微调器适配器和 OnNavigationListener 在操作栏中设置导航列表 问题是导航列表没有填充大部分操作栏 如何使其像 gmail 应用程序一样展开 Gmail 应用程序示例 My app 这
  • 如何在C#中应用多个.Tag属性?

    当我想存储 传递值时 我总是使用 Tag 属性 例如 当我存储值时 Form prosesEdit new FormProsesChemicalRawWbEdit prosesEdit Tag int this proses chemica
  • 目录级别 web.config 中的 Asp.net HttpModule

    我创建了一个自定义 http 模块 并希望将此模块添加到 Web 配置中 Web应用程序是一个包含多个 子应用程序 的项目 子应用程序只是一个文件夹 在该文件夹中它有自己的 web config 我这样做是为了让每个应用程序都有自己的应用程
  • 如何计算文件中字符串的出现次数?

    仅以这段代码为例 假装它是一个 HTML 文本文件 如果我想知道该文件的总次数echo出现了 我该如何使用 bash 来做到这一点 new user echo Preparing to add a new user sleep 2 addu
  • Facebook Php SDK - getUser() 始终返回 0

    我阅读了该论坛上的所有主题 但找不到解决方案 我使用 facebook 的最后一个 Php SDK v3 2 2 所以我用了这个 start fb facebook new Facebook array appId gt fb app id
  • Laravel:高级搜索表单查询

    我有一个高级搜索表单 可以使用 Laravel 从数据库中过滤结果 数据已正确过滤 但我要求用户能够使用相同的文本框 以高级形式 按名字或姓氏进行过滤 我尝试 orWhere 确保它用名字或姓氏过滤名称字段 但 orWhere 不考虑其他过
  • AngularJS 在 HTML 中留下注释:是否可以删除它们?

    有谁知道是否可以删除 html 代码中留下的角度注释 例如 如果我使用 ngRepeat 并且没有可重复的项目 AngularJS 会留下以下内容 此评论的结果是element嵌入执行者ngRepeat 看起来好像是一直在发生 https
  • 默认共享首选项使用的文件名是什么?

    安卓备份服务requires http developer android com guide topics data backup html SharedPreferences用于备份共享首选项的文件名 public static fin
  • 如何在数据框列表上使用 devtools::use_data?

    我有一系列数据框 我想将它们保存为包中的单独 rda 文件 我可以用devtools use data my df1 my df2 但我没有每个数据帧的命名对象 它们都存储在一个大列表中 我想要做的是为每个列表元素调用 use data 并
  • 如何从我的代码中删除重复项

    我有两个类似的方法 其中一个打印一些东西 其中一个保存一些东西 正如你所看到的 有很多重复的代码 我应该如何重构它并删除这种重复 public static void printSomething List
  • 在玩笑中模拟节点模块中的特定类

    我想嘲笑Socket类来自net节点模块 Docs https nodejs org api net html net class net socket 我有一堂课看起来像这样 import Socket from net class Fo
  • 在浏览器上通过php运行python脚本

    我有一个简单的 python 脚本 阿努巴哈 py usr bin env python coding UTF 8 enable debugging import cgitb import pandas cgitb enable print
  • 将新项目动态添加到 IQueryable 硬编码假存储库

    在使用真正的数据库之前构建应用程序 为了让事情正常工作 我可以首先使用硬编码列表作为假的内存存储库 public class FakeProductsRepository private static IQueryable
  • RecyclerView 项目不填充宽度

    我设计了一个带有地图片段和recyclerView的布局 每个recyclerView项目都是cardview 我已经指定给出xml布局 问题是 RecyclerView 项目不填充屏幕宽度 img here https i stack i
  • Scrapy图片下载如何使用自定义文件名

    For my scrapy http doc scrapy org index html我目前正在使用的项目图片管道 http doc scrapy org topics images html scrapy contrib pipelin
  • 防止小部件填充 Flutter 中扩展的祖先

    我如何保留一个RaisedButton从扩大到填补Expanded包含它 我想创建三列 其宽度与可用空间成比例 但我希望每列中的子项为其自然大小 而不消耗其父项的整个宽度Expanded Widget controls BuildConte