Menu
CoddyTech

行间分隔线

本课属于 Coddy Flutter 学习旅程的“列表和屏幕”单元。第 5 课,共 33 课。

紧挨着的行很难区分。Divider 会在列表中画一条细灰线:

ListView(
  children: [
    ListTile(title: Text('Wi-Fi')),
    Divider(),
    ListTile(title: Text('Bluetooth')),
  ],
)

它位于两行之间,所以 4 行列表需要 3 个分隔线,最后一行后面不需要分隔线。

如果想调整 Divider 的样式,可以设置几个选项:用 thickness: 设置线条粗细,用 color: 设置颜色,用 indent: 让线条的起点离左边缘更远。

challenge icon

挑战

简单

设置列表中只有 Wi-Fi 和 Bluetooth 之间有一条分隔线。在每两行之间添加一个 Divider,这样就会有三条分隔线,并且 Sound 后面没有分隔线。

亲手试试

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: const Text('Settings')),
        body: ListView(
          children: const [
            ListTile(leading: Icon(Icons.wifi), title: Text('Wi-Fi')),
            Divider(),
            ListTile(leading: Icon(Icons.bluetooth), title: Text('Bluetooth')),
            ListTile(leading: Icon(Icons.battery_full), title: Text('Battery')),
            ListTile(leading: Icon(Icons.volume_up), title: Text('Sound')),
          ],
        ),
      ),
    );
  }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

列表和屏幕中的所有课

自己练习: Flutter 在线编译器