盯着学习 Flutter。想知道如何将 class 导入有状态小部件

Staring to learn Flutter. Wondering how to import a class into a stateful widget

我刚开始学习 flutter,正在尝试制作一个待办事项列表应用程序。如果您看到下面的代码,我想知道如何将代码 below class _TodoListState extends State<TodoList> {before Widget build(BuildContext context) { 移动到一个不同的 .dart 文件,然后将其导入 main.dart 中的 Stateful 小部件。我的目标是使我的代码更整洁,而不是将所有内容都放在 main.dart 文件中。感谢您的帮助!

import 'package:flutter/material.dart';


void main() {
  runApp(new TodoApp());
}

class TodoApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'To Do List',
      home: new TodoList()
    );
  }
}

class TodoList extends StatefulWidget {
  @override
  _TodoListState createState() => _TodoListState();
}

class _TodoListState extends State<TodoList> {
  List<String> _todoItems = [];
  
  void _addTodoItems() {
    setState(() { 
      int index = _todoItems.length;
      _todoItems.add('Item ' + index.toString());
    });
  }
  Widget _buildTodoList() {
    return new ListView.builder(
      itemBuilder: (context, index) {
      
        if (index < _todoItems.length) {
          return _buildTodoItem(_todoItems[index]);
        }
      },
    );
  }
  Widget _buildTodoItem(String todoText) {
    return new ListTile(
      title: new Text(todoText),
    );
  }
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        centerTitle: true, 
        title: new Text(
          'To Do List',
          style: TextStyle(
            color: Colors.grey[200],
            fontSize: 25,
          ),

        ),
      ),

      body: _buildTodoList(),
      floatingActionButton: new FloatingActionButton(
        onPressed: _addTodoItems,
        tooltip: 'Add task',
        child: new Icon(Icons.add),
      ),

    );
  }
}

在 Dart 中,所有 classes,从 _ 开始的方法和变量都是私有的(它不能在当前范围之外使用(如果方法是私有的 - 它不能从 class,或者如果 class 是私有的 - 它在其他文件中不可用))。

根据您的情况,只需创建另一个文件(如 todo_list.dart)并将 TodoList_TodoListState 移至该文件,然后将 TodoList 导入 main.dart