Skip to content
On this page

目录结构

text
lib:
│  generated_plugin_registrant.dart//编译器自动生成的第三方插件配置
│  main.dart //入口配置

├─activitys//负责ui的布局(每个界面以及目录与controllers相对应)
│  │  main_activity.dart
│  │  new_base_activity.dart
│  │  splash_activity.dart
│  │  
│  ├─fragments //activity内子界面布局
│  │      new_base_fragment.dart
│  │      
│  ├─views //页面内常用到的布局
│  │      version_update_tips_view.dart
│  │      
│  └─items //滑动列表下复用view的布局

├─configs //配置文件统一管理
│      app_config.dart //全局配置
│      assets_config.dart//图片字体资源路径等的配置
│      font_config.dart //字体风格配置
│      key_config.dart//缓存配置
│      response_config.dart//网络数据解析配置
│      router_config.dart//路由配置
│      url_config.dart//网络请求路径配置

├─controllers //ui对应的控制器,负责逻辑处理
│  │  main_activity_controller.dart
│  │  splash_activity_controller.dart
│  │  
│  └─extra  //全局控制器配置,比如主题,语言等可以放在这里
│          application_controller.dart

├─generated  //多语言自动生成的目录
│  │  l10n.dart
│  │  
│  └─intl
│          messages_all.dart
│          messages_en.dart

├─l10n //多语言配置
│      intl_en.arb

├─models //负责服务器数据解析
│  │  user_info.dart
│  │  user_info.g.dart
│  │  
│  ├─extra //非网络请求数据类型的定义
│  │      key_value.dart
│  │      
│  └─response  //网络请求解析的自动生成处理
│          login_response_data.dart
│          login_response_data.g.dart

├─resources //资源文件的配置
│      dimens.dart
│      s_colors.dart

├─utils  //常用布局工具类的封装
│      keyboard_util.dart
│      navigator_util.dart
│      network_util.dart
│      string_util.dart
│      view_util.dart

└─widgets  //常用ui组件的封装
│  clear_over_scroll_behavior_view.dart
│  keep_alive_view.dart
│  material_inkwell_view.dart
│  pull_refresh_view.dart

├─loading_dialog //loading提示框组件
│      loading_dialog_controller.dart
│      loading_dialog_view.dart
│      loading_indicator.dart

├─normal  //一些常用组件的封装,统一调用normal内的可以方便管理以及配置等
│      normal_button_view.dart
│      normal_choose_list_view.dart
│      normal_image_view.dart
│      normal_input_view.dart
│      normal_network_image_view.dart
│      normal_popup_route.dart
│      normal_popup_view.dart
│      normal_stateful_text_view.dart
│      normal_stateful_view.dart
│      normal_tab_view.dart
│      normal_text_view.dart

对应文件夹作用以及命名规范建议

  • activitys 负责ui的布局(每个界面以及目录与 controllers 相对应)
  • 一个页面内多个子页面建议放在 fragments 内,每一个 fragment 同样对应一个 controller ,命名时候加上对应界面的 activtiy 前缀方便查找定位
    • (如: fragments/main_activity_fragment_my.dart,同时对应一个 main_activity_fragment_my_controller.dart 负责逻辑处理)
  • 一些与页面相关的组件可以放在 views 内,如果页面内存在复用布局,可以把他们都放到 items 目录下,命名与对应的 activity 或者 fragment 对应
    • (如: items/main_activity_fragment_home_meeting_view_item.dart 负责复用控件的布局)

configs:负责配置文件的统一管理

  • assets_config.dart 负责图片字体图标资源的配置
  • key_config.dart 负责缓存文件的配置
  • response_config.dart 负责文件解析类型的支持,定义好对应的 model 后,需要在该文件内进行声明注册
  • router_config.dart 负责路由的配置
  • url_config.dart 负责服务器请求的配置

l10n:负责多语言配置

  • 项目中用到的语言建议统一写到这里

models:负责服务器数据解析

  • 定义好数据格式后执行生产.g文件
  • model 文件变化后自动生成
text
flutter packages pub run build_runner build
flutter packages pub run build_runner watch

resources:负责宽高间距等的配置以及字体大小的配置

  • dimens.dart 负责距离配置
  • s_colors.dart 负责颜色配置

智加文档规范