首页 > 解决方案 > 具有相同滚动的几个 Listview

问题描述

我怎样才能在 Flutter 中拥有多个Listview但对两者都使用相同的滚动条?

我的想法是这样的:

ListTile
ListTile
ListTile
...

Some content

ListTile
ListTile
ListTile
...

我可以将该内容移动到其内部,Listview但它会变得有点混乱,我更喜欢使用不同的小部件

标签: flutterflutter-layout

解决方案


您有一些选项,一个是使用SingleChildScrollViewColumn然后删除列表的滚动条,或者您也可以使用 Slivers 来完成。

这是使用第一个选项的示例:

Scaffold(
      body: SingleChildScrollView(
        child: Column(
          children: [
            ListView.builder(
              shrinkWrap: true,
              physics: const NeverScrollableScrollPhysics(),
              itemBuilder: (_, index) => ListTile(
                title: Text("Group 1 : Item $index"),
              ),
              itemCount: 9,
            ),
            Padding(
              padding: const EdgeInsets.all(8.0),
              child: Text("Some content"),
            ),
            ListView.builder(
              shrinkWrap: true,
              physics: const NeverScrollableScrollPhysics(),
              itemBuilder: (_, index) => ListTile(
                title: Text("Group 2 : Item $index"),
              ),
              itemCount: 9,
            ),
          ],
        ),
      ),
    );

如果你想使用 Slivers,请查看 Emily Fortuna 的这篇很棒的帖子; https://medium.com/flutter/slivers-demystified-6ff68ab0296f


推荐阅读