Skip to content

Latest commit

 

History

History
104 lines (92 loc) · 11.7 KB

README_CN.md

File metadata and controls

104 lines (92 loc) · 11.7 KB

Finovy UIKit

轻量、可靠的移动端Flutter组件库

English | 中文版

一、使用方法

在pubspec.yaml文件dependencies节点加入:

fn_ui_kit:
  git:
    url: https://github.com/finovy/finovy_ui_kit.git

二、组件库基础信息

名称 fn_ui_kit
使用类别 UI类
开发框架 flutter
开发语言 Dart
最低环境要求 flutter >=3.0.0    dart >=2.17.0 <=4.0.0
当前版本 1.1.0
第三方依赖 auto_size_text  pin_code_fields   pull_to _refesh  visibility_detector
开源地址 https://github.com/finovy/finovy_ui_kit.git

三、组件库目录结构

fn_ui_kit
├── icons(svg通用图标:不会被编译进去)
│   ├── base (最常用的图标)
│   └── tabbar(底部导航栏图标)
├── lib (源代码) 
│   └── assets
│      ├── images (图片资源)
│      └── fn_icons.dart (通用图标引用类 类型IconData)│   
│      └── fn_icons_font.otf (通用图标生成的字体文件,pubspec.yaml文件里面引用)
│   └── src
│       ├── basic   (基础组件,包含文本Text、按钮Button、图片Image、图标Icon、输入框TextFiled、公共页面Page、标签Tag)
│       └── charts  (图表组件,包含折线图LineChart、柱状图BarChart等)
│       ├── constant(常量,包含颜色Color、字体大小FontSize、图片路径ImagePath)  
│       └── feedback (反馈组件,包含弹出确认框Dialog、轻提示框Toast、通知栏NoticeBar、步骤条Step)
│       ├── form    (表单组件,包含单元格Cell、复选框CheckBox,表格Form、单选框RadioButton,搜索组件Search,分栏组件Segment,星级投票Rate)
│       ├── third_lib(第三方库)
│       └── business(业务组件,包含验证码输入框VerifyInput、事件容器Event Container、状态占位组件EmptyWidget、日期选择DatePicker)
│       ├── theme   (主题组件,包含大部分组件的主题配置)
│       └── navigation (导航组件,包含导航栏AppBar、导航返回Back、网格组件Grid、脚手架Scaffold)
├── pubspec.yaml(项目配置信息)
└── README.md(英文描述文档)
├── README_CN.md(中文描述文档)
└── CHANGELOG.md (修改记录)

目录结构说明:

  1. icons目录为通用,引用时并不会被编译进去;
  2. src目录下的一级目录均为组件类别,如basic为基础组件类;
  3. third_lib为第三方依赖库目录,为本地依赖,目的是设置固定版本确保组件库的版本稳定迭代更新;
  4. pubspec.yaml为组件库的配置文件,组件库的版本信息以及相关依赖均在此文件体现;
  5. CHANGELOG.md文件为每次迭代更新组件库版本时必须填写的文件,里面记录了每次组件库迭代更新的具体信息;
  6. readme.md为组件库更新到其他平台如github、pub、gitlab等时的描述文件。

目录包含组件统计:

目录名称组件类别组件名称组件描述使用场景

basic

(基础类)

buttonFNUIButton按钮组件,支持主要按钮、次要按钮、文字按钮,图标按钮全局均可使用,支持三种状态(可用、禁用、加载中),支持边框自定义,文本自定义
imageFNUIImage、图片组件,支持网络图片、本地图片,支持指定模块加载;全局使用
inputFNUITextField、FNUIPasswordInput

输入组件,支持普通文本输入,键盘样式、文本样式等常规设置;

密码输入组件,支持普通密码输入,键盘样式、文本样式等常规设置;

交互式输入场景、验证场景
text

FNUIText、

FNExpandLabel

文本组件,支持普通文本展示,文本样式自定义;

可折叠文本组件,支持多行文本的折叠和展开交互;

最常用的组件,全局使用;

需要多行文本展示折叠效果

iconFNUIIcon图标组件,支持文本和图标样式自定义全局使用,通用图标返回IconData

form

(表单类)

formFNUIForm表单组件,支持表单带常规输入框、箭头式、多行文本式表单展示;个人信息展示或修改场景、意见反馈等场景
cellFNUICell表单单行组件,支持标题、内容、图标等展示用户信息展示、资料展示场景
radioFNUIRadio单选按钮组件,支持唯一单选控制和展示用户单一选择数据场景
checkboxFNUICheckBox复选按钮组件,支持多个选择控制和展示用户选择多个数据场景
tableFNUITable表格组件,支持常规表头、内容展示带表头的数据列表展示场景
rateFNUIRate投票组件,支持投票、评级等icon展示投票、评级场景
searchFNUISearch搜索组件,支持常规搜索视图展示需要提供搜索服务的场景
segmentFNUISegment分栏组件,支持多组文本单一选择需要选择或切换唯一分类的场景

feedback

(操作反馈类)

toastFNUIToast轻提示组件,支持上中下位置展示,支持mask交互隔离交互成功、失败、提醒弹窗场景,加载等待
dialogFNUIDialog弹出框组件,支持弹出确认框、底部确认框、自定义按钮以及事件响应交互确认场景、用户主动选择确认场景
progress

FNUILinearProgress、

FNUICircularProgress

进度提示组件,支持线性、圆形视觉效果明确需要进度展示的场景

navigation

(导航类)

appbarFNUIAppbar顶部导航栏组件,支持常规背景、文字、按钮等配置全局配置,路由导航页
backFNUINavBack导航返回按钮全局配置,路由导航页
gridFNUIGrid网格组件,支持多种菜单全局配置
scaffoldFNUIScaffold脚手架组件全局配置

charts

(图表类)

---暂未完成封装

business

(业务类)

verifycodeFNUIVerifyCodeInput验证码输入组件,支持90%以上的验证码场景,可以高度自定义用于登录、注册等验证码输入场景
place_holderFNUIEmpty占位视图组件,支持无数据、请求错误、网络错误等多类别展示用于视图占位场景,可根据实际需要选择
pickerFNUIDatePicker时间选择组件,支持时间选择多种样式用于选择具体时间,支持常规时间格式化
eventFNUIEventContainer事件普通容器组件,继承普通容器,支持点击事件需要容器带点击事件的场景

constant

(常量类)

colorsFNColors颜色常量类,归类设计稿上不同场景的颜色值,支持快捷访问用于统一颜色值,配合主题使用
fontsFNFontSize字体大小常量类,统一字体大小用于统一项目内字体大小,一般不用额外指定
imagesFNImagePath图片路径处理类,提供图片路径存储和路径处理用于定义组件库内图片类地址等

theme

(主题配置类)

styles组件主题配置文件夹包含大部分组件主题配置用于每个组件单独主题配置
themeFNTheme主题配置主文件main文件入口引用

third_lib

(第三方依赖类)

auto_size_text-文本自动大小组件,支持根据宽度自适应文本字体大小用于特殊文本字体大小适配展示场景
pin_code_fields-验证码输入组件,支持验证码输入、自动填充等用于登录、注册等验证码输入场景
pull_to_refresh-列表刷新组件,支持头部、底部自定义用于列表组件刷新场景
visibility_detector-可见区域检测组件,支持视图的可见状态检测用于路由切换、页面切换、前后台切换场景检测

context

(上下文类)

contextFNDesignContext上下文配置入口,主要用于为弹框类提供上下文;提供了两种初始化的方法:initFNUIKitContext、FNUIKitContextBuilder程序主入口进行初始化