listview - 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]),
);
}
}
解决方案
这应该有效:
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"))
]),
推荐阅读
- java - 使用流的地图收集产生奇怪的编译错误
- javascript - 将 RGB 颜色转换为 XY
- apache-spark - StreamingQueryException:文本数据源仅支持单列
- java - java.sql.SQLException:调用中的参数无效:对用户定义类型和 REF 类型使用 setNull
- android - 即使项目中没有包含其他firebase项目的数据,如何检索数据?
- postgresql - postgresql容器的数据保存在哪里,还有容器的位置在哪里?
- javascript - 如何在jquery数据表中获取多个复选框选中的值
- reactjs - React 组件在调整大小/重新渲染时会重复,即使它们具有唯一的键
- laravel - 在 laravel 中使用分页进行多次急切加载
- forms - 如何在 Google Colaboratory 中使用变量作为表单字段的输入?