具有多个滚动方向的颤动列表视图

2024-05-06

我有某种时间表,其中包含小时数和天数

  Widget _buildSchedule(ScheduleLoaded state) {
    final List<Widget> days = state.range.days.map((DateTime day) {
      return Column(
        children:
          _buildTimeSlots(day, state.timeSlots.toList()),

      );
    }).toList();

    return ListView( scrollDirection: Axis.horizontal, children: days);
  }

现在我正在尝试使其也可以垂直滚动(分别按天或所有屏幕)

  Widget _buildSchedule(ScheduleLoaded state) {
    final List<Widget> days = state.range.days.map((DateTime day) {
      return ListView(
        shrinkWrap: true,
        physics: ClampingScrollPhysics(),
        children: _buildTimeSlots(day, state.timeSlots.toList())
      );
    }).toList();

    return ListView( scrollDirection: Axis.horizontal, children: days);
  }

根据 SO 嵌套的相关答案ListView with shrinkWrap and ClampingScrollPhysics应该可以工作,但第二个版本无法呈现错误'constraints.hasBoundedWidth':不正确。


以下是如何使用 SingleChildScrollView 双向滚动,

class MultiDirectionalScrollView extends StatefulWidget {
  const MultiDirectionalScrollView({Key? key}) : super(key: key);
  @override
  _MultiDirectionalScrollViewState createState() =>
      _MultiDirectionalScrollViewState();
}

class _MultiDirectionalScrollViewState
    extends State<MultiDirectionalScrollView> {
  Widget cell(int rowX, int colY) {
    return Container(
        width: 100,
        height: 100,
        alignment: Alignment.center,
        decoration: BoxDecoration(
            border:
                Border.all(color: Colors.grey.withOpacity(0.45), width: 1.0)),
        child: Text('row $rowX\ncol $colY'));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('multi Direction scroll'),
      ),
      body: InteractiveViewer( // Interactive viewer can be removed
        child: SingleChildScrollView(
          scrollDirection: Axis.vertical,
          child: SingleChildScrollView(
            scrollDirection: Axis.horizontal,
            child: Column(
              children: List.generate(
                  100,
                  (indexX) => Row(
                      children: List.generate(
                          100, (indexY) => cell(indexX, indexY)))),
            ),
          ),
        ),
      ),
    );
  }
}

Heres a 尝试一下。

Output

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

具有多个滚动方向的颤动列表视图 的相关文章

随机推荐

  • JBoss 7.2 版本使用什么日志记录?

    java 中可以使用多种日志记录变体 最流行的是 log4j 和 JDK 日志记录 我想知道 JBoss Application Server 7 2 版本默认使用什么日志记录 通过查看模块或配置文件很难找到所使用的记录器 如果有人可以在这
  • 在什么情况下会在快速测试中使用expectationForNotification

    我有点困惑什么 什么时候做expectationForNotification as opposed to期望与描述 我无法在 swift 中找到任何明确的示例来说明您何时以及如何处理此调用 我假设它可能是为了测试通知 但看起来它可能只是整
  • 文件 ReadAllLines 将外语变成乱码 (�)

    我正在创建一个工具来替换文本文件中的某些文本 我的问题是 File ReadAllLines 将希伯来字符变成乱码 奇怪的问号 有谁知道为什么会发生这种情况 请注意 我在游戏等中确实遇到希伯来语问题 在记事本中 我无法保存希伯来语文档 我可
  • 使用文件名将文件一个文件夹复制到 Google 云端硬盘中的另一个文件夹

    我的谷歌云端硬盘帐户中有两个文件夹 文件夹 1 和 文件夹 2 文件夹1 内有多个文件 假设有一个文件名Test txt我想复制Test txt使用 Driveapp 将文件保存到 文件夹 2 我找到了代码 但它仅适用于 文件唯一 ID 我
  • 在linux x86平台上学习ARM所需的工具[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 x86 linux 机器 在阅读一些关于 ARM 的各种信息时 我很好奇 现在我想花一些时间学
  • 从服务定期更新 AppWidget

    这就是我想要从我的 AppWidget 中得到的 当小部件添加到屏幕时 配置活动就会出现 到目前为止还不错 保存配置后 将启动一个更新小部件的服务 到目前为止一切顺利 定期安排警报以运行更新小部件的服务 这里遇到麻烦了 这已经严重让我的头发
  • 崩溃的 Visual Studio Live 单元测试

    我是新用户堆栈溢出这是我的问题 作为我工作的一部分 我们最近安装了 VS 2017 企业版 一切都很好 直到几周前实时单元测试模块停止工作 有谁能够解决此类问题吗 这是输出控制台 17 26 23 170 Info Live Unit Te
  • 为什么我可以在 Ruby 中使用 Object#send 访问私有/受保护的方法?

    班上 class A private def foo puts foo end public def bar puts bar end private def zim puts zim end protected def dib puts
  • Django:生成 CSV 文件并将其存储到 FileField 中

    在我的 Django 视图文件中 我需要从元组列表生成 CSV 文件 并将 CSV 文件存储到模型的 FileField 中 class Bill models Model billId models IntegerField bill m
  • 如何在IntelliJ中快速输入记录器定义?

    是否有一些实时模板或其他东西可以将记录器定义添加到类中 在 Eclipse 中我有一个模板 private static final Logger log LoggerFactory getLogger enclosing type cla
  • 将元素追加到 Angular QueryList

    有没有办法将新元素追加到 QueryList 中 例如 我有一个像这样的查询列表 ContentChildren SysColumn syscolumns QueryList
  • Ruby 枚举器链接

    在这个例子中 1 2 3 each with index map i j i j gt 0 2 6 我的理解是 既然each with index枚举器链接到map map表现得像each with index通过在块内传递索引 并返回一个
  • Adobe Reader 命令行参考

    有没有official不同版本的命令行 开关 参考Adobe 以前称为 Acrobat Reader 我没有找到任何东西Adobe 开发人员连接 http www adobe com devnet 我特别想 启动 Reader 并打开文件
  • 查找彼此接近的对象边界

    我正在研究一个计算机视觉问题 其中问题的第一步是找到物体彼此靠近的位置 例如 在下图中 我感兴趣的是找到灰色标记的区域 Input Output 我目前的方法是首先反转图像 然后通过侵蚀进行形态梯度跟随 然后删除一些不感兴趣的轮廓 脚本如下
  • Hibernate从数据库获取列表

    在下面的代码中 我尝试获取包含数据库中所有产品的产品列表 public List
  • 如何在iphone中画同心圆?

    我想画一个戒指 环应填充在外圆中 我参考了一个文档http developer apple com library mac documentation GraphicsImaging Conceptual drawingwithquartz
  • 将 xml 转换为 python 字典

    我正在尝试创建一个 dict 类来处理 xml 但陷入困境 我真的没有想法了 如果有人可以指导这个主题 那就太好了 到目前为止开发的代码 class XMLResponse dict def init self xml self resul
  • 使用 Scoop 编程 DEAP

    我在 python 中使用 DEAP 库来解决多目标优化问题 我想使用多个处理器来完成这项任务 但是 我遇到了一些麻烦 为了提供一些背景信息 我将 networkx 与 DEAP 结合使用 我还定义了适应度函数 交叉和变异函数 由于某些原因
  • 从 JDK 1.6 迁移到 JDK 1.7 的 PowerMockito 测试出现约束违规

    我们有一些测试在 JDK 1 6 上运行良好 我们现在正在转向 JDK 1 7 这些测试在 Eclipse 中运行良好 当我们从 Ant 构建运行这些测试时 我们会看到如下错误 junit framework TestListener ad
  • 具有多个滚动方向的颤动列表视图

    我有某种时间表 其中包含小时数和天数 Widget buildSchedule ScheduleLoaded state final List