Language: English | 中文简体
flutter_chen_azlist
Flutter 城市列表/联系人列表组件(支持悬停头与A--Z索引)。基于 scrollable_positioned_list。
功能特性
- 快速构建城市/联系人列表界面
- 列表项按 A--Z 分组并支持悬停(可浮动)
- 支持自定义 Header 与索引联动
- IndexBar 支持自定义样式与本地图片
- 支持滚动/跳转到指定条目
- 索引交互可选触觉反馈(haptic feedback)
兼容性
- Dart:>= 3.0.0 < 4.0.0
- Flutter:推荐 3.x
安装
yaml
dependencies:
flutter_chen_azlist: ^3.0.0
快速开始
dart
import 'package:flutter/material.dart';
import 'package:flutter_chen_azlist/flutter_chen_azlist.dart';
class City extends ISuspensionBean {
City(this.name, this.tag);
final String name;
final String tag;
@override
String getSuspensionTag() => tag;
}
class DemoPage extends StatelessWidget {
DemoPage({super.key});
final List<City> cities = [
City('北京', 'B'),
City('上海', 'S'),
City('深圳', 'S'),
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('AzListView Demo')),
body: AzListView(
data: cities,
itemCount: cities.length,
itemBuilder: (context, i) => ListTile(title: Text(cities[i].name)),
susItemBuilder: (context, i) => Container(
height: 40,
padding: const EdgeInsets.symmetric(horizontal: 16),
alignment: Alignment.centerLeft,
child: Text(cities[i].getSuspensionTag()),
),
indexBarOptions: const IndexBarOptions(hapticFeedback: true),
),
);
}
}
截图
![]() |
![]() |
![]() |
---|---|---|
![]() |
![]() |
![]() |
示例
完整示例见 example/
目录:
- 运行:
cd example && flutter run
Thanks
许可
使用 MIT 协议,参见 LICENSE
。