首页 > 解决方案 > ListView.builder 下面的小部件/灵活占用最小空间

问题描述

我想创建一个列小部件,其中有两个元素:一个 ListView.builder(必须包装在一个灵活的小部件中,因此它不会崩溃)和另一个小部件。另一个 Widget 应放在 ListView 的正下方。

问题是灵活的小部件/列表视图占用了所有空间并将另一个小部件推到屏幕底部。

我已经尝试了将另一个小部件放入第二个灵活的各种组合,也尝试使用 flex 和 fit,但似乎没有任何效果

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  List<String> mylist = ["aaaa","bbbb","cccc","ddd","eee","fff","ggg"];

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(body: Column(
        verticalDirection: VerticalDirection.down,
        children: <Widget>[
          Flexible(child: ListView.builder(itemBuilder: listbuilder,itemCount: mylist.length,)),
      ListTile(leading: Text("this should be below the other"))
      ]),)

    );
  }

  Widget listbuilder(BuildContext context, int index)
  {
    return ListTile(leading: Text(mylist[index]),

    );
  }
}

结果

标签: listviewdartflutter

解决方案


这应该有效:

            body:
                      Column(verticalDirection: VerticalDirection.down, children: <Widget>[
                    ListView.builder(
                      shrinkWrap: true,
                      itemBuilder: listbuilder,
                      itemCount: mylist.length,
                    ),
                    ListTile(leading: Text("this should be below the other"))
                  ]),

推荐阅读