返回

ListView 小记事本

Android

Flutter 开发从 0 到 1(三)布局与 ListView

1. 什么是 ListView?

ListView 是 Flutter 中最常用的组件。它允许您垂直或水平滚动列表中的项目。它与 ScrollView 类似,但提供了更细粒度的控制。ListView 可以与其他小部件结合使用,如 Button、Text、Image 等,以创建更复杂的 UI 元素。

2. ListView 的类型

ListView 有两个主要类型:

  • ListView.builder: 此 ListView 类型允许您动态创建项目。它非常高效,因为它仅创建屏幕上可见的项目,并按需加载其他项目。
  • ListView.separated: 此 ListView 类型允许您在项目之间插入分隔符。这可以用来创建分组的列表或其他需要分隔的项目。

3. ListView 的优缺点

ListView 有一些优点,包括:

  • 高效: ListView 仅创建屏幕上可见的项目,并按需加载其他项目,这使其非常高效。
  • 灵活性: ListView 可以与其他小部件结合使用,以创建更复杂的 UI 元素。
  • 易用: ListView 易于使用,即使对于初学者也是如此。

ListView 也有一些缺点,包括:

  • 内存消耗: ListView 可能比 ScrollView 更内存消耗。
  • 滚动延迟: ListView 可能会遇到滚动延迟,尤其是在项目列表非常长时。
  • 复杂性: ListView 比 ScrollView 更复杂,因此更难实现。

4. ListView 小记事本

现在我们已经了解了 ListView 的基本概念,让我们来看看如何使用它来构建一个简单的小记事本。

  • 第 1 步:创建项目

要创建项目,请使用以下代码:

flutter create my_notepad
  • 第 2 步:添加依赖关系

将以下依赖关系添加到 pubspec.lock 文件中:

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  cupertino_icons:
    sdk: flutter
  • 第 3 步:创建 UI

接下来,让我们创建 UI。

class HomePage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return HomePageState();
  }
}

class HomePageState extends State<StatefulWidget> {
  final List<String> notes = <String>[]();
  final TextEditingController controller = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        TextField(controller),
        Button(Icons.send, () {
          setState(() {
            notes.add(controller.text);
            controller.clear();
          });
        }),
        ListView.separated(
            itemBuilder: (context, index) {
              return ListTile(title: Text(notes[index]),);
            },
            itemCount: notes.length,
          ),
        ],
      );
  }
}
  • 第 4 步:测试应用程序

最后,让我们测试应用程序。

flutter run

5. 结论

ListView 是 Flutter 中最常用的组件,允许您垂直或水平滚动列表中的项目。它与 ScrollView 类似,但提供了更细粒度的控制。

ListView 有两​​种​​主要类型:ListView.builder 和 ListView.separated。ListView.builder 允许您动态创建项目,而 ListView.separated 允许您在项目之间插入分隔符。

ListView 有一些优点,包括高效、灵活性、易用。但它也有一些缺点,包括内存消耗、滚动延迟、复杂性。

我们可以使用 ListView 来构建一个简单的记事本应用程序。