首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将列表添加到不能滚动的列

将列表添加到不能滚动的列
EN

Stack Overflow用户
提问于 2018-06-06 03:11:21
回答 1查看 46关注 0票数 0

所以我的UI是在一个滚动的ListView中构建的,这很好,我将在底部拥有同一小部件的许多实例,我如何才能在不将它们放入另一个ListView中的情况下添加这些小部件?如果我这样做了,用户可以滚动内部的,而不是父级的。

我将从一个数据库中提取ContestBar小部件的数量,该数据库也将包含每个小部件的信息。必须有一种方法来动态填充它们,而不是将它们放在列表视图中,因为我希望整个屏幕都滚动,而不仅仅是ContestBar小部件。

这是代码。

代码语言:javascript
复制
@override
  Widget build(BuildContext context) {
    return RefreshIndicator(
      onRefresh: _onRefresh,
      child: ListView(
        children: <Widget>[
          Container(
            width: double.infinity,
            height: 150.0,
            color: Colors.black,
          ),
          ProfileBar(
            displayName: 'Zach S.',
            points: 1324,
            balance: 256.15,
            initials: 'ZS',
          ),
          Container(
            height: 64.0,
            decoration: const BoxDecoration(
              border: const Border(bottom: const BorderSide(width: 1.0, color: Colors.black12)),
            ),
            padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 16.0),
            child: ListView(
              scrollDirection: Axis.horizontal,
              children: List<Padding>.generate(sortChipNames.length, (int index) {
                return Padding(
                  padding: const EdgeInsets.only(right: 8.0),
                  child: ChoiceChip(
                    label: Text(sortChipNames[index]),
                    selected: _selectedChips.contains(index),
                    onSelected: (bool selected) {
                      setState(() {
                        _selectedChips.contains(index) ? _selectedChips.remove(index)
                                                       : _selectedChips.add(index);
                      });
                    },
                  ),
                );
              }),
            ),
          ),
          // Here is the instance of the same widget, this will eventually come from a database and have way more than 5.
          ContestBar(),
          ContestBar(),
          ContestBar(),
          ContestBar(),
          ContestBar(),
        ],
      ),
    );
  }
EN

回答 1

Stack Overflow用户

发布于 2018-06-06 03:59:37

好的,我可以通过添加一个Flex小部件,将direction属性设置为Axis.vertical,并将children设置为ContestBar小部件列表来使其正常工作。代码如下。

列表

代码语言:javascript
复制
final List<ContestBar> testContests = <ContestBar>[
  ContestBar(),
  ContestBar(),
  ContestBar(),
  ContestBar(),
  ContestBar(),
];

小部件

代码语言:javascript
复制
Flex(
  direction: Axis.vertical,
  children: testContests,
),
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50707352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档