项目结构
封装效果
使用
pubspec.yaml pub导入
1 2 3 4
| dependencies: flutter_core: path: packages/flutter_core
|
使用时导包
1
| import 'package:flutter_core/export_public.dart';
|
入口页面
1 2 3 4 5 6 7 8
| void main() { initApplication( "hello", ThemeData( primarySwatch: Colors.blue, ), routes: routes); }
|
路由配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
Map<String, YxMaterialRoutePage> routes = { "/": YxMaterialRoutePage(route: (arguments) => Welcome()),
"/login": YxMaterialRoutePage( loginCallback: (path, arguments) => Login(path, arguments)),
"/home": YxMaterialRoutePage( route: (arguments) => Home(arguments), loginRequired: true), };
|
wiget页面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| @override Widget build(BuildContext context) { CommonHelper.fullscreen(); return YxViewRoot( image: 'assets/bg_login.png', child: Center( child: Text( "Welcome", style: TextStyle( color: Colors.white, fontSize: 60, ), ), ), ); }
|
接口调用
1 2 3 4 5 6 7
| HttpManager.getInstance().post("user/login", params: {"username": "13812345678", "password": "654321"}, successCallBack: (data) { M model = JsonConvert.fromJsonAsT<M>(data); }, errorCallBack: (err) { print(err); });
|
再次封装一层Api之后的调用
权限控制
扩展函数封装
1 2 3 4 5
| runWithPermission( [Permission.READ_EXTERNAL_STORAGE, Permission.WRITE_EXTERNAL_STORAGE], () { });
|
使用第三方的sdk
1 2 3 4 5 6 7
| Map<Permission, PermissionStatus> statuses = await [ Permission.camera, Permission.storage, ].request(); if (statuses[Permission.storage].isGranted) { }
|
状态栏与导航栏
1 2 3
| import 'package:base_flutter/utils/libs_utils_common.dart'; CommonHelper.fullscreen(); CommonHelper.normal();
|
绘制列表页
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| import 'package:flutter/material.dart'; import 'package:flutter_core/export_public.dart'; import 'package:platform_flutter_app/http/app_http_api.dart'; import 'package:platform_flutter_app/model/model_home_list_entity.dart';
class Home extends StatefulWidget { final arguments;
Home(this.arguments);
@override State createState() => _HomeState(_HomeViewModel()); }
class _HomeState extends ListState<ModelHomeListList> { _HomeState(_HomeViewModel viewModel) : super(viewModel);
@override Widget build(BuildContext context) { CommonHelper.normal(); return super.build(context); }
@override createItem(ModelHomeListList item) { return Card(child: Center(child: Text(item.name??"没名字"))); } }
class _HomeViewModel extends BaseViewModel<ModelHomeListList> { @override onLoad(int page, Function call) { Api.list((l) => {call(l.xList)}); } }
|
实现效果
https://xuqinmin.com/xuqinmin12/paltform_flutter/src/master/images/device-2020-10-30-162403.png