【发布时间】:2022-01-12 12:02:08
【问题描述】:
列表没有足够的空间,似乎我以前这样做过,一切正常,但现在不行。我最近开始在 Flutter 上进行开发,所以我可能遗漏了一些东西,如果你能帮助解决这个错误,我将不胜感激。
home_screen
class HomePage extends StatelessWidget {
final todoRepository = TodoRepository();
@override
Widget build(BuildContext context) {
// final TodoBloc todoBloc = context.read<TodoBloc>();
return BlocProvider<TodoBloc>(
create: (context) => TodoBloc(todoRepository),
child: Scaffold(
appBar: AppBar(
title: const Text('Flutter Todos'),
),
// floatingActionButton: FloatingActionButton(
// onPressed: () {
// // _addTodo(context);
// final newTodo = Todo(description: 'Todo 1');
// BlocProvider.of<TodoBloc>(context).add(CreateTodos(newTodo));
// },
// child: const Icon(Icons.add),
// ),
body: Column(
// crossAxisAlignment: CrossAxisAlignment.center,
children: [
ActionButton(),
TodoList(),
],
)),
);
}
list_screen
class TodoList extends StatelessWidget {
@override
Widget build(BuildContext context) {
final Todo todo;
return BlocBuilder<TodoBloc, TodoState>(builder: (context, state) {
if (state is TodoEmptyState) {
return const Center(
child: Text(
'No Todo',
style: TextStyle(fontSize: 20.0),
),
);
}
if (state is TodoLoadingState) {
return const Center(child: CircularProgressIndicator());
}
// final todos = (state is TodoLoadedState);
// return Container();
if (state is TodoLoadedState) {
return ListView.builder(
shrinkWrap: true,
itemCount: state.loadedUser.length,
itemBuilder: (context, index) =>
// return _buildListTile(state.loadedUser[index]);
Expanded(
child: Container(
child: ListTile(
title: Column(children: [
Text('${state.loadedUser[index].description}')
])))));
}
return const SizedBox.shrink();
});
}
【问题讨论】:
-
扩展必须在列或行中。并且不要使用没有参数的容器。
标签: flutter dart flutter-layout