Flutter版WanAndroid App,旨在打造一款完整的Flutter應用項目。
包含啟動頁,引導頁,主題色切換,應用國際化多語言,版本更新等功能,項目主架構采用響應式程式設計RxDart和BLoC,由于目前項目功能尚未完善,代碼還有待優化,後續項目重構整理好後,會全部開源出來,敬請期待!歡迎下載下傳體驗。
有關項目最新動态,可以關注App内第一條Hot Item資訊。
網絡架構DioUtil,螢幕适配ScreenUtil
v0.1.6(2018.12.20)
新增網絡請求工具DioUtil, 單例模式,可輸出請求日志。
// 打開debug模式.
DioUtil.openDebug();
// 配置網絡參數.
Options options = DioUtil.getDefOptions();
options.baseUrl = "http://www.wanandroid.com/";
HttpConfig config = new HttpConfig(options: options);
DioUtil().setConfig(config);
// 兩種單例請求方式.
DioUtil().request(Method.get, "banner/json");
DioUtil.getInstance().request(Method.get, "banner/json");
//示例
LoginReq req = new LoginReq('username', 'password');
DioUtil().request(Method.post, "user/login",data: req.toJson());
//示例
FormData formData = new FormData.from({
"username": "username",
"password": "password",
});
DioUtil().requestR(Method.post, "user/login",data: rformData);
//解析示例
class WanRepository {
Future> getBanner() async {
BaseResp baseResp = await DioUtil().request(
Method.get, WanAndroidApi.getPath(path: WanAndroidApi.BANNER));
List bannerList;
if (baseResp.code != Constant.STATUS_SUCCESS) {
return new Future.error(baseResp.msg);
}
if (baseResp.data != null) {
bannerList = baseResp.data.map((value) {
return BannerModel.fromJson(value);
}).toList();
}
return bannerList;
}
}
// 網絡請求日志
I/flutter ( 5922): ----------------Http Log----------------
I/flutter ( 5922): [statusCode]: 200
I/flutter ( 5922): [request ]: method: GET baseUrl: http://www.wanandroid.com/ path: lg/collect/list/0/json
I/flutter ( 5922): [reqdata ]: null
I/flutter ( 5922): [response ]: {data: {curPage: 1, datas: [], offset: 0, over: true, pageCount: 0, size: 20, total: 0}, errorCode: 0, errorMsg: }
v0.1.5(2018.12.14)
ScreenUtil 新增螢幕适配,不依賴context
//如果設計稿尺寸與預設配置一緻,無需該設定。 配置設計稿尺寸 預設 360.0 / 640.0 / 3.0
setDesignWHD(_designW,_designH,_designD);
//傳回根據螢幕寬适配後尺寸(機關 dp or pt)
ScreenUtil.getInstance().getWidth(100.0);
ScreenUtil().getWidth(100.0);
//傳回根據螢幕高适配後尺寸(機關 dp or pt)
ScreenUtil.getInstance().getHeight(100.0);
ScreenUtil().getHeight(100.0);
//傳回根據螢幕寬适配後字型尺寸
ScreenUtil.getInstance().getSp(12.0);
ScreenUtil().getSp(100.0);
已開源
① 網絡架構
② 閃屏廣告頁
③ 啟動頁
④ 引導頁
⑤ 主題色切換
⑥ 國際化
更新說明
v0.1.2 (2018.12.20)
① 網絡架構DioUtil
② 合并flutter_demos
v0.1.1 (2018.11.19)
① 新增啟動頁
② 新增引導頁
③ 修複banner無法點選bug,一些優化
v0.1.0 (2018.11.16)
① 堪稱完美的UI界面almost
② 支援國際化
③ 支援更換主題色
主界面

主界面
引導頁

引導頁
啟動頁

啟動頁
閃屏廣告頁

閃屏廣告頁
分類頁面

分類頁面
Web頁輕按兩下Title滾動到頂部

Web頁輕按兩下Title滾動到頂部
多語言

多語言
設定主題色

設定主題色