📜  Flutter- 可滑动(1)

📅  最后修改于: 2023-12-03 15:30:49.609000             🧑  作者: Mango

Flutter- 可滑动

在开发移动应用时,可滑动是一个非常常见的交互方式。Flutter框架提供了多种可滑动的组件,包括ListView、GridView、CustomScrollView等等。本文将对Flutter中的可滑动组件进行介绍和使用说明。

ListView

ListView是Flutter中最基础的可滑动组件,用于在一个方向上展示可滑动的列表。ListView组件有两种类型,分别是有限的和无限的。

有限的ListView需要明确指定列表中的元素数量,比如:

ListView(
  children: <Widget>[
    Container(
      height: 50,
      child: Text("Item 1"),
    ),
    Container(
      height: 50,
      child: Text("Item 2"),
    ),
    Container(
      height: 50,
      child: Text("Item 3"),
    ),
  ],
)

无限的ListView一般用于有大量数据需要展示的场景,这时可以使用ListView.builder,只需要指定一个builder函数,该函数返回一个包含所有列表项的组件:

ListView.builder(
  itemCount: 1000,
  itemBuilder: (BuildContext context, int index) {
    return Container(
      height: 50,
      child: Text("Item $index"),
    );
  },
)
GridView

GridView是一个二维网格列表,用于在一个方向上展示可滑动的列表。与ListView类似,GridView也分有限和无限两种类型。

有限的GridView需要指定行数和列数,比如:

GridView.count(
  crossAxisCount: 3, // 每行展示3个
  children: <Widget>[
    Container(
      height: 50,
      child: Text("Item 1"),
    ),
    Container(
      height: 50,
      child: Text("Item 2"),
    ),
    Container(
      height: 50,
      child: Text("Item 3"),
    ),
    // ... 添加更多的元素
  ],
)

无限的GridView也可以使用GridView.builder,使用方法与ListView.builder相似。

CustomScrollView

CustomScrollView是一个高度自定义的可滑动Widget,允许使用多种Sliver或普通Widget来创建可滑动的视图。CustomScrollView由多个Sliver组成,比如SliverAppBar、SliverList等等。

下面是一个简单的CustomScrollView例子,包含一个SliverAppBar和一个SliverList:

CustomScrollView(
  slivers: [
    SliverAppBar(
      title: Text("Flutter 可滑动"),
      floating: true,
      snap: true,
    ),
    SliverList(
      delegate: SliverChildListDelegate([
        Container(
          height: 50,
          child: Text("Item 1"),
        ),
        Container(
          height: 50,
          child: Text("Item 2"),
        ),
        Container(
          height: 50,
          child: Text("Item 3"),
        ),
        // ... 添加更多的元素
      ]),
    ),
  ],
)

总结:Flutter提供了丰富的可滑动组件,可以满足各种需要。ListView、GridView适合简单的列表展示场景,CustomScrollView则适用于更高度自定义的可滑动视图。开发者可以根据需求来选择最适合的可滑动组件。