flutter 如何使listview.builder在容器中可滚动

uqdfh47h  于 2023-04-13  发布在  Flutter
关注(0)|答案(2)|浏览(188)

我有一个列表视图,我想让它在容器中可滚动。但是,当我向下滚动并释放手指时,列表会锁定回顶部。我尝试将列表视图 Package 在SingleChildScrollView中,但不起作用。以下是相关代码:

// The container that holds the list view
SizedBox(
  height: 501,
  child: SingleChildScrollView(
    child: Column(
      children: [
        // A button to add a new item to the list
        TextButton.icon(
          onPressed: () { ... },
          icon: Icon(Icons.add),
          label: Text("Add Course"),
        ),
        // The list view that needs to be scrollable
        ListView.builder(
          shrinkWrap: true,
          itemCount: ...,
          itemBuilder: (context, index) { ... },
        ),
      ],
    ),
  ),
);
aydmsdu9

aydmsdu91#

您使用了两次滚动。

如果你只想滚动ListView,删除SingleChildScrollView。你需要停止其中一个。如果你想一起滚动Listview.builderButton,添加primary : false到Listview。builder:

SizedBox(
  height: 501,
  child: SingleChildScrollView(
    child: Column(
      children: [
        // A button to add a new item to the list
        TextButton.icon(
          onPressed: () { ... },
          icon: Icon(Icons.add),
          label: Text("Add Course"),
        ),
        // The list view that needs to be scrollable
        ListView.builder(
          shrinkWrap: true,
          primary: false,
          itemCount: ...,
          itemBuilder: (context, index) { ... },
        ),
      ],
    ),
  ),
);

您可以在这里获得有关primary属性的更多信息:https://api.flutter.dev/flutter/widgets/ScrollView/primary.html

06odsfpq

06odsfpq2#

1.删除 Package ListView.builder的固定高度的SizedBox小部件。
1.删除 Package ListView.builder中的Column小部件的SingleChildScrollView小部件。
1.使用具有固定高度的Container小部件 Package ListView.builder。

Container(
  height: 500,
  child: ListView.builder(
    ...
  ),

相关问题