這里實現(xiàn)flutter第三方地圖導航,選用最簡單的方式--調(diào)用第三方地圖客戶端;但各種地圖客戶端用的坐標系不一定相同,先了解下常見的坐標系:
為滿城等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及滿城網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站制作、成都網(wǎng)站設計、滿城網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
地圖應用api坐標系:
在 pubspec.yaml 文件中添加依賴插件:
一般android和ios調(diào)起第三方應用是通過scheme方式,這里調(diào)起第三方地圖客戶端導航也一樣,如高德地圖,ios scheme為iosamap,android scheme為androidamap; 所以flutter需要引用url_launcher;
未完待續(xù)~~
阿里巴巴為大家學習Flutter操碎了心
macos
.bash_profile
執(zhí)行 flutter doctor
CSSColors ----
some times need fix:
解決辦法用命令行:
flutter packages get
當在flutter中做一個全局的Toast,loading,Alert的時候,會使用到OverlayEntry,只要通過OverlayState.insert()就能展示在界面上。如此好用那OverlayState又是從哪來的呢?
首先,獲取OverlayState可以直接調(diào)用OverlayState overlayState = Overlay.of(context);直接就拿context去找了:OverlayState result = context.findAncestorStateOfTypeOverlayState();?
能找到?怎么就找到了呢
那看下Overlay的注釋:
盡管您可以直接創(chuàng)建一個[Overlay],但最常見的是使用[WidgetsApp]或[MaterialApp]中的[Navigator]創(chuàng)建的。導航器使用其overlay來管理路由的視覺外觀。
其中很關(guān)鍵的點在Navigator,那去找Navigator,順便還找到了Route。
Navigator中一層結(jié)構(gòu)就是Overlay。那看下Flutter中導航到底是怎么做的。
許多應用程序在其小部件層次結(jié)構(gòu)的頂部附近都有一個導航器,以便使用[Overlay]來顯示它們的邏輯歷史,其中最近訪問的頁面可視化地位于較舊頁面的頂部。通過使用此模式,導航器可以通過在覆蓋圖中移動小部件從一個頁面可視地過渡到另一個頁面。
既然Overlay從導航而來,那App中怎么就有導航呢?
Flutter創(chuàng)建的的時候,main里面的入口runApp(),在視圖的最底層會寫一個MaterialApp().
找到MaterialApp。
那就找在哪創(chuàng)建了Navigator。沒找到,但是在return時用的是WidgetsApp,看下介紹。
WidgetsApp定義了基本的應用程序元素,但不依賴于Material庫,也就是MaterialApp是對WidgetsApp的上層封裝,為我們集成了Material元素。繼續(xù)找WidgetsApp。
在build里面創(chuàng)建了Navigator。
那么流程就是:MaterialApp ——?WidgetsApp ——?Navigator。
Overlay.of(context)拿到了Navigator里面的OverlayState.
返回用navigator的pop方法
使用navigator的pushNamed方法push到對應的頁面
在導航的目的頁面的build方法里用ModalRoute.of(context)方法獲取需要的參數(shù):
第二個頁面返回到第一個頁面的時候如果要帶參數(shù),可以使用async異步方法來實現(xiàn)
用navigator的push方法,在頁面的初始化方法中傳遞參數(shù):
自定義導航欄實現(xiàn)的效果如下圖所示,點擊搜索按鈕,進入搜索頁面。下面顯示默認搜索內(nèi)容,點擊左側(cè)的返回按鈕可以返回到上一級頁面。輸入的內(nèi)容如果有匹配,被匹配的字母會加粗顯示。
1、main.dart
2、asset.dart
里面有兩個數(shù)組,searchList存放的是搜索的內(nèi)容,recentList里是最近搜索過的內(nèi)容。在實際應用中這兩個數(shù)據(jù)應該自己獲取。
3、