# flutter-vant4 **Repository Path**: lesterchn/flutter-vant4 ## Basic Information - **Project Name**: flutter-vant4 - **Description**: 轻量、可定制的移动端 Flutter 组件库(高仿Vant 4) - **Primary Language**: Dart - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-16 - **Last Updated**: 2024-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# Flutter Vant > 轻量、可定制的移动端 `Flutter` 组件库 > 仿照 `Vant4` 实现 `Flutter Vant UI` 库,尽可能贴合Vant原生的API ## 1. 实现功能与特性 + 提供UI明亮与暗黑模式 + 提供Vant4官方Demo,并实现监听系统主题模式变化变更主题模式 + 提供Flutter风格兼容Vant4的主题与样式分离 ## 2. 组件 > 第一个百分比组件完成度; > 第二个百分比DEMO完成度; ### 2.1 Basic 基础组件 + [x] Button 按钮 - 100% - 90% + [x] Cell 单元格 - 70% - 70% + [ ] ConfigProvider 全局配置 + [x] Icon 图标 - 10% - 0% + [x] Image 图片 - 100% - 100% + [x] Layout 布局 - 40% - 40% + [ ] Popup 弹出层 - 0% - 0% + [ ] Space 样式 - 0% - 0% + [ ] Toast 轻提示 - 0% - 0% ### 2.2 Form 表单组件 + [ ] Calendar 日历 + [ ] Cascader 级联选择 ## 3. DEMO 代码预览 ```dart /// demo:button const VanDocDemoBlockTitle(title: "按钮类型", paddingTop: 20), const Wrap(spacing: 20, runSpacing: 8, children: [ VanButton(text: "主要按钮", type: VanButtonType.primary), VanButton(text: "成功按钮", type: VanButtonType.success), VanButton(text: "默认按钮", type: VanButtonType.defaults), VanButton(text: "危险按钮", type: VanButtonType.danger), VanButton(text: "警告按钮", type: VanButtonType.warning), ]), const VanDocDemoBlockTitle(title: "朴素类型"), const Wrap(spacing: 20, runSpacing: 8, children: [ VanButton(text: "朴素类型", type: VanButtonType.primary, plain: true), VanButton(text: "朴素类型", type: VanButtonType.success, plain: true), ]), const VanDocDemoBlockTitle(title: "细边框"), const Wrap(spacing: 20, runSpacing: 8, children: [ VanButton(text: "细边框按钮", type: VanButtonType.primary, plain: true, hairline: true), VanButton(text: "细边框按钮", type: VanButtonType.success, plain: true, hairline: true), ]), const VanDocDemoBlockTitle(title: "禁用状态"), const Wrap(spacing: 20, runSpacing: 8, children: [ VanButton(text: "禁用状态", type: VanButtonType.primary, disabled: true), VanButton(text: "禁用状态", type: VanButtonType.success, disabled: true), ]), const VanDocDemoBlockTitle(title: "加载状态"), const Wrap(spacing: 20, runSpacing: 8, children: [ VanButton(type: VanButtonType.primary, loading: true), VanButton(type: VanButtonType.primary, loading: true, loadingType: VanButtonLoadingType.spinner), VanButton(type: VanButtonType.primary, loading: true, loadingText: "加载中..."), ]), const VanDocDemoBlockTitle(title: "按钮形状"), const Wrap(spacing: 20, runSpacing: 8, children: [ VanButton(text: "方形按钮", type: VanButtonType.primary, square: true), VanButton(text: "圆形按钮", type: VanButtonType.success, round: true), ]), ... ``` ```dart /// demo:image const VanDocDemoBlockTitle(title: "基础用法", paddingTop: 20, paddingLeft: 0), VanImage.network(src: src, width: 100, height: 100), const VanDocDemoBlockTitle(title: "填充模式", paddingLeft: 0), VanImage.network(src: src, width: 100, height: 100, fit: BoxFit.contain), ... ``` ## 4. 下载并预览 ![Alt text](data:image/png;base64,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)