綠色出行
Flutter 仿滴滴出行App
地圖:採用高德地圖,僅簡單完成了部分功能,基礎地圖,地址檢索,逆地理編碼。
介面:仿滴滴主介面,地圖中心請求動效果,服務tabs展開效果,地址檢索介面,城市列表介面。
專案結構:詳見作者另外一個Flutter完整專案flutter_wanandroid。???
目前本專案僅部分開源~
已開源內容:
1、Dart漢字轉拼音庫 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
詳細使用請參考倉庫說明。
import 'package:flustars/flustars.dart';
// App啟動時讀取Sp資料,需要非同步等待Sp初始化完成。
await SpUtil.getInstance();
SpUtil.getString('key', defValue: '');
SpUtil.getInt('key', defValue: 0);
/// save object example.
/// 儲存實體物件示例。
City city = new City();
city.name = "成都市";
SpUtil.putObject("loc_city", city);
Map dataStr = SpUtil.getObject("loc_city");
City hisCity = dataStr == null ? null : City.fromJson(dataStr);
print("thll Str: " + (hisCity == null ? "null" : hisCity.toString()));
/// save object list example.
/// 儲存實體物件List示例。
List<City> list = new List();
list.add(new City(name: "成都市"));
list.add(new City(name: "北京市"));
SpUtil.putObjectList("loc_city_list", list);
List<Map> dataList = SpUtil.getObjectList("loc_city_list");
List<City> _cityList = dataList?.map((value) {
return City.fromJson(value);
})?.toList();
print("thll List: " + (_cityList == null ? "null" : _cityList.toString()));
複製程式碼
ScreenUtil
詳細使用請參考倉庫說明。
import 'package:flustars/flustars.dart';
// 如果設計稿尺寸預設配置一致,無需該設定。 配置設計稿尺寸 預設 360.0 / 640.0 / 3.0
setDesignWHD(_designW,_designH,_designD);
// 不依賴context
// 螢幕寬
double screenWidth = ScreenUtil.getInstance().screenWidth;
// 根據螢幕寬適配後尺寸
double adapterW100 = ScreenUtil.getInstance().getWidth(100);
// 依賴context
// 螢幕寬
double screenWidth = ScreenUtil.getScreenW(context);
// 根據螢幕寬適配後尺寸
double adapterW100 = ScreenUtil.getScaleW(context, 100);
複製程式碼
fluintl
詳細使用請參考倉庫說明。
import 'package:fluintl/fluintl.dart';
/// 替換字串格式要求:'%\${index}\$s' ,{index} 第幾個引數,從0開始。
Ids.click_times: '%\$0\$s點選了%\$1\$s次';
IntlUtil.getString(context, Ids.click_times, params: ['Tom', '$_counter']);
/// print: Tom點選了0次
/// 字串獲取
IntlUtil.getString(context, Ids.titleHome);
IntlUtil.getString(context, Ids.titleHome, params: [param1, param2]); 
CustomLocalizations.of(context).getString(Ids.titleHome);
複製程式碼
Screenshot
引導頁
啟動頁
主介面
首頁地圖
地址檢索
城市列表
關於作者
GitHub : Sky24n
簡書 : Sky24n
掘金 : Sky24n
Pub : Sky24n
關於App
GitHub : GreenTravel
僅支援安卓Apk下載
APK點選下載:綠色出行v0.0.5
APK掃碼下載: