Flutter 仿滴滴出行App,2021最新华为Android校招面试题
項(xiàng)目結(jié)構(gòu):詳見(jiàn)作者另外一個(gè)Flutter完整項(xiàng)目flutter_wanandroid。🔥🔥🔥
目前本項(xiàng)目?jī)H部分開(kāi)源~
已開(kāi)源內(nèi)容:
1、Dart漢字轉(zhuǎn)拼音庫(kù) lpinyin
2、城市列表,索引&懸停效果 AzListView
3、也許是目前最好用的Sp工具類(lèi) SpUtil
4、也許是目前最好用的屏幕工具類(lèi) ScreenUtil
5、國(guó)際化 fluintl
6、Dart常用工具類(lèi)庫(kù) 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ì)使用請(qǐng)參考倉(cāng)庫(kù)說(shuō)明。
import ‘package:flustars/flustars.dart’;
// App啟動(dòng)時(shí)讀取Sp數(shù)據(jù),需要異步等待Sp初始化完成。
await SpUtil.getInstance();
SpUtil.getString(‘key’, defValue: ‘’);
SpUtil.getInt(‘key’, defValue: 0);
/// save object example.
/// 存儲(chǔ)實(shí)體對(duì)象示例。
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.
/// 存儲(chǔ)實(shí)體對(duì)象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ì)使用請(qǐng)參考倉(cāng)庫(kù)說(shuō)明。
import ‘package:flustars/flustars.dart’;
// 如果設(shè)計(jì)稿尺寸默認(rèn)配置一致,無(wú)需該設(shè)置。 配置設(shè)計(jì)稿尺寸 默認(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ì)使用請(qǐng)參考倉(cāng)庫(kù)說(shuō)明。
import ‘package:fluintl/fluintl.dart’;
/// 替換字符串格式要求:’%${index}$s’ ,{index} 第幾個(gè)參數(shù),從0開(kāi)始。
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校招面试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: DL3 - optimization a
- 下一篇: android sina oauth2.