Flutter 仿滴滴出行App,2021最新华为Android校招面试题
項目結(jié)構(gòu):詳見作者另外一個Flutter完整項目flutter_wanandroid。🔥🔥🔥
目前本項目僅部分開源~
已開源內(nèi)容:
1、Dart漢字轉(zhuǎn)拼音庫 lpinyin
2、城市列表,索引&懸停效果 AzListView
3、也許是目前最好用的Sp工具類 SpUtil
4、也許是目前最好用的屏幕工具類 ScreenUtil
5、國際化 fluintl
6、Dart常用工具類庫 common_utils
lpinyin
import ‘package:lpinyin/lpinyin.dart’;
String pinyin = PinyinHelper.getPinyin(“成都市”);
AzListView
import ‘package:azlistview/azlistview.dart’;
AzListView(
{Key key,
this.data,
this.topData,
this.itemBuilder,
this.suspensionWidget,
this.isUseRealIndex: true,
this.itemHeight: 50,
this.suspensionHeight: 40,
this.onSusTagChanged,
this.header,
this.indexBarBuilder,
this.indexHintBuilder,
this.showIndexHint: true});
SpUtil
詳細(xì)使用請參考倉庫說明。
import ‘package:flustars/flustars.dart’;
// App啟動時讀取Sp數(shù)據(jù),需要異步等待Sp初始化完成。
await SpUtil.getInstance();
SpUtil.getString(‘key’, defValue: ‘’);
SpUtil.getInt(‘key’, defValue: 0);
/// save object example.
/// 存儲實體對象示例。
City city = new City();
city.name = “成都市”;
SpUtil.putObject(“l(fā)oc_city”, city);
Map dataStr = SpUtil.getObject(“l(fā)oc_city”);
City hisCity = dataStr == null ? null : City.fromJson(dataStr);
print("thll Str: " + (hisCity == null ? “null” : hisCity.toString()));
/// save object list example.
/// 存儲實體對象List示例。
List list = new List();
list.add(new City(name: “成都市”));
list.add(new City(name: “北京市”));
SpUtil.putObjectList(“l(fā)oc_city_list”, list);
List dataList = SpUtil.getObjectList(“l(fā)oc_city_list”);
List _cityList = dataList?.map((value) {
return City.fromJson(value);
})?.toList();
print("thll List: " + (_cityList == null ? “null” : _cityList.toString()));
ScreenUtil
詳細(xì)使用請參考倉庫說明。
import ‘package:flustars/flustars.dart’;
// 如果設(shè)計稿尺寸默認(rèn)配置一致,無需該設(shè)置。 配置設(shè)計稿尺寸 默認(rèn) 360.0 / 640.0 / 3.0
setDesignWHD(_designW,_designH,_designD);
// 不依賴context
// 屏幕寬
double screenWidth = ScreenUtil.getInstance().screenWidth;
// 根據(jù)屏幕寬適配后尺寸
double adapterW100 = ScreenUtil.getInstance().getWidth(100);
// 依賴context
// 屏幕寬
double screenWidth = ScreenUtil.getScreenW(context);
// 根據(jù)屏幕寬適配后尺寸
double adapterW100 = ScreenUtil.getScaleW(context, 100);
fluintl
詳細(xì)使用請參考倉庫說明。
import ‘package:fluintl/fluintl.dart’;
/// 替換字符串格式要求:’%${index}$s’ ,{index} 第幾個參數(shù),從0開始。
Ids.click_times: ‘%$0$s點(diǎn)擊了%$1$s次’;
IntlUtil.getString(context, Ids.click_times, params: [‘Tom’, ‘$_counter’]);
/// print: Tom點(diǎn)擊了0次
/// 字符串獲取
IntlUtil.getString(context, Ids.titleHome);
總結(jié)
以上是生活随笔為你收集整理的Flutter 仿滴滴出行App,2021最新华为Android校招面试题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DL3 - optimization a
- 下一篇: intellij idea cpu占用率