文本超出 TextFormField - Flutter

Text goes out of TextFormField - Flutter

遇到这样的问题,当我创建一个任务并向其中添加 2 个或更多字段时,然后将此文本传输到另一个屏幕时,它会爬出文本字段。我不知道该怎么做才能修复错误。隐藏额外的文本或增加文本下方 TextFormField 的大小。请告诉我如何解决这个问题?谢谢。

edit_todo

class EditTodoScreen extends StatelessWidget {
  final Todo todo;
  EditTodoScreen({Key? key, required this.todo}) : super(key: key);

  final _controller = TextEditingController();

  @override
  Widget build(BuildContext context) {
    _controller.text = todo.description;

    return BlocBuilder<TodoBloc, TodoState>(builder: (context, state) {
      return Scaffold(
        appBar: AppBar(
          title: const Text(
            'Edit Todo',
            style: TextStyle(fontSize: 20.0),
          ),
        ),
        body: _body(context),
      );
    });
  }

  Widget _body(context) {
    return Padding(
      padding: const EdgeInsets.all(20.0),
      child: Column(
        children: [
          TextFormField(
            controller: _controller,
            autocorrect: true,
            decoration: const InputDecoration(hintText: 'Enter todo message'),
          ),
          const SizedBox(
            height: 10.0,
          ),
          InkWell(
            onTap: () {
              // BlocProvider.of<TodoBloc>(context)
              //     .add(UpdateTodos(Todo(description: _todoName)));
              final updateTodo = Todo(description: _controller.text);
              BlocProvider.of<TodoBloc>(context).add(
                UpdateTodos(
                  updateTodo,
                  // _controller.text,
                ),
              );
              Navigator.pop(context);
            },
            child: _updateBtn(context),
          )
        ],
      ),
    );
  }

 Widget _updateBtn(context) {
    return Container(
      width: MediaQuery.of(context).size.width,
      height: 50.0,
      decoration: BoxDecoration(
          color: Colors.black, borderRadius: BorderRadius.circular(10.0)),
      child: Center(
        child: Text(
          'Update Todo',
          style: TextStyle(
              fontSize: 17.0,
              color: Colors.amber.shade700,
              fontWeight: FontWeight.bold),
        ),
      ),
    );
  }

todo_list

onTap: () {
                      Navigator.push(
                        context,
                        MaterialPageRoute(
                          builder: (context) => EditTodoScreen(
                            todo: state.loadedUser[index],
                          ),
                        ),
                      );
                    },

您可以为 TextFormField 定义最大和最小线数。我在这里使用了最多两行。使用你认为最适合你的情况的任何东西。如果行数超过您定义的最大值,它将变成可滚动的。

TextFormField(
    controller: _controller,
    autocorrect: true,
    decoration: const InputDecoration(
        hintText: 'Enter todo message',
    ),
    maxLines: 2,
    minLines: 1,
),