Flutter 仿滴滴出行App

綠色出行

Flutter 仿滴滴出行App
地圖:採用高德地圖,僅簡單完成了部分功能,基礎地圖,地址檢索,逆地理編碼。
界面:仿滴滴主界面,地圖中心請求動效果,服務tabs展開效果,地址檢索界面,城市列表界面。
項目結構:詳見做者另一個Flutter完整項目flutter_wanandroid。🔥🔥🔥
目前本項目僅部分開源~
已開源內容:
一、Dart漢字轉拼音庫 lpinyin
二、城市列表,索引&懸停效果 AzListView
三、也許是目前最好用的Sp工具類 SpUtil
四、也許是目前最好用的屏幕工具類 ScreenUtil
五、國際化 fluintl
六、Dart經常使用工具類庫 common_utilsandroid

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

詳細使用請參考倉庫說明。git

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

詳細使用請參考倉庫說明。github

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

詳細使用請參考倉庫說明。markdown

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]);&emsp;
CustomLocalizations.of(context).getString(Ids.titleHome);
複製代碼

Screenshot

引導頁

啓動頁

主界面

首頁地圖

地址檢索

城市列表

關於做者

GitHub : Sky24n
簡書     : Sky24n
掘金     : Sky24n
Pub      : Sky24n異步

關於App

GitHub : GreenTravel
僅支持安卓Apk下載
APK點擊下載:綠色出行v0.0.5
APK掃碼下載:
工具

綠色出行
相關文章
相關標籤/搜索