對(duì)于初學(xué)flutter的朋友來(lái)說(shuō),要知道,flutter的UI萬(wàn)物皆Widget。

漳州ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書(shū)合作)期待與您的合作!
flutter所寫(xiě)的頁(yè)面的結(jié)構(gòu)可以被看成套娃,一層套一層,一層套一層,一層套一層。。。。。。
Flutter Widget采用現(xiàn)代響應(yīng)式框架構(gòu)建,這是從 React 中獲得的靈感,中心思想是用widget構(gòu)建你的UI。 Widget描述了他們的視圖在給定其當(dāng)前配置和狀態(tài)時(shí)應(yīng)該看起來(lái)像什么。當(dāng)widget的狀態(tài)發(fā)生變化時(shí),widget會(huì)重新構(gòu)建UI,F(xiàn)lutter會(huì)對(duì)比前后變化的不同, 以確定底層渲染樹(shù)從一個(gè)狀態(tài)轉(zhuǎn)換到下一個(gè)狀態(tài)所需的最小更改。
Text : 該 widget 可讓創(chuàng)建一個(gè)帶格式的文本。
Row 、 Column : 這些具有彈性空間的布局類(lèi)Widget可讓您在水平( Row )和垂直( Column )方向上創(chuàng)建靈活的布局。
Stack :取代線性布局 (和Android中的LinearLayout相似),Stack允許子 widget 堆疊, 你可以使用 Positioned 來(lái)定位他們相對(duì)于 Stack 的上下左右四條邊的位置。
Container : Container 可讓您創(chuàng)建矩形視覺(jué)元素。 您可以為 Container 裝飾一個(gè) BoxDecoration , 如 background、一個(gè)邊框、或者一個(gè)陰影。 Container 也可以具有邊距(margins)、填充(padding)和應(yīng)用于其大小的約束(constraints)。另外, Container 可以使用矩陣在三維空間中對(duì)其進(jìn)行變換。
具體的演示見(jiàn)我另外的博客
有一部分Widget都有一個(gè) child 屬性,用于容納唯一的子Widget。
例如:Container、Center、Padding、Align等Widget。
還有一部分Widget允許存在多個(gè)子Widget,用 children 作為屬性。
例如:Row、Column、Stack等Widget。
在StatefulWidget調(diào)用createState之后,框架將新的狀態(tài)插入樹(shù)種,然后調(diào)用狀態(tài)對(duì)象的initState。子類(lèi)化State可以重寫(xiě)initState,以完成僅需要一次執(zhí)行的工作。當(dāng)然在initState的實(shí)現(xiàn)中需要調(diào)用super.initState
當(dāng)一個(gè)狀態(tài)對(duì)象不再需要時(shí),框架調(diào)用狀態(tài)對(duì)象的dispose。也可以通過(guò)覆蓋dispose方法來(lái)執(zhí)行清理工作。
OVER~
出現(xiàn)這個(gè)提示的原因是,因?yàn)槟阋呀?jīng)在進(jìn)行定位了,可能是調(diào)試模式下沒(méi)有進(jìn)行資源釋放,或者處理定位數(shù)據(jù)出現(xiàn)異常導(dǎo)致你的后臺(tái)一直進(jìn)行定位。當(dāng)你重新hot reset app 后,因?yàn)樯弦淮蔚亩ㄎ环?wù)沒(méi)有被停止,所以會(huì)提示這個(gè)錯(cuò)誤 `can not start loc in locationg! `
# 解決方案
在進(jìn)行定位前先停止定位,函數(shù)如下
```dart
? LocationFlutterPlugin _locationPlugin = new LocationFlutterPlugin();
? _locationPlugin.stopLocation();? // ---定位前先停止定位
```
解決成功????
2017年底因公司業(yè)務(wù)組合部門(mén)調(diào)整,新的團(tuán)隊(duì)部分維護(hù)的項(xiàng)目用React Native技術(shù)混合開(kāi)發(fā)。為適應(yīng)環(huán)境變化,開(kāi)啟瘋狂RN學(xué)習(xí)之旅,晚上回來(lái)啃資料看視頻。可能由于本身對(duì)RN技術(shù)體驗(yàn)不感冒或者在環(huán)境之下強(qiáng)迫學(xué)習(xí)有點(diǎn)不爽。開(kāi)始尋找代替方案,F(xiàn)luter像一束曙光引起了我的注意,之后一直關(guān)注并利用閑余時(shí)間開(kāi)始探索。2018年一直學(xué)習(xí)到使用Flutter寫(xiě)項(xiàng)目,從0.2.0開(kāi)始到現(xiàn)在1.5版本的發(fā)布,終于開(kāi)始慢慢的爬出坑位了,但是因?yàn)椴糠挚丶杏X(jué)還是不如原生控件好用,因而Flutter提供了PlatformView部件。近期因項(xiàng)目中嚴(yán)重使用依賴(lài)地圖,故而做了Fluterr使用原生IOS高德地圖調(diào)研。因?yàn)槲冶旧硎且幻鸻ndroid開(kāi)發(fā)人員,初學(xué)IOS并記錄下來(lái)。
PlatformView是 flutter 官方提供的一個(gè)可以嵌入 Android 和 iOS 平臺(tái)原生 view 的小部件。
在我們實(shí)際開(kāi)發(fā)中,我們遇到一些 flutter 官方?jīng)]有提供的插件可以自己創(chuàng)建編寫(xiě)插件來(lái)實(shí)現(xiàn)部分功能,但是原生View在 flutter 中會(huì)遮擋住flutter 中的小部件,比如你想使用高德地圖sdk、視頻播放器、直播等原生控件,就無(wú)法很好的與 flutter 項(xiàng)目結(jié)合。
1、info.plist文件設(shè)置
2、 ios 端實(shí)現(xiàn)原生組件PlatformView提供原生view
3 、ios 端創(chuàng)建PlatformViewFactory用于生成PlatformView
4、 ios 端創(chuàng)建FlutterPlugin用于注冊(cè)原生組件
5 、flutter 平臺(tái)嵌入 原生view
iOS端的UiKitView目前還只是preview狀態(tài), 默認(rèn)是不支持的, 需要手動(dòng)打開(kāi)開(kāi)關(guān), 在info.plist文件中新增一行io.flutter.embedded_views_preview為true.
創(chuàng)建類(lèi) FlutterMapView 并實(shí)現(xiàn)FlutterPlatformView 協(xié)議
FlutterMapView.h
FlutterMapView.m
FlutterMapFactory.h
FlutterMapFactory.m
FlutterMapPlugin.h
FlutterMapPlugin.m
請(qǐng)前往 高德開(kāi)放平臺(tái)控制臺(tái) 申請(qǐng) iOS Key。
注意:Bundle Identifier需要與申請(qǐng)的時(shí)候填寫(xiě)的一致
地圖依賴(lài)的庫(kù)列舉如下:
基礎(chǔ) SDK AMapFoundationKit.framework
第一步:將解壓后的MAMapKit.framework 文件 copy 或 拖拽 到工程文件夾中,左側(cè)目錄選中工程名,在 TARGETS-Build Phases- Link Binary With Libaries 中點(diǎn)擊“+”按鈕,在彈出的窗口中點(diǎn)擊“Add Other”按鈕,選擇工程目錄下的 MAMapKit.framework 文件添加到工程中。
千萬(wàn)不要忘記將AMapFoundationKit也一起加入工程。
3D地圖正確配置應(yīng)如下圖所示:
需要引入的資源文件包括:AMap.bundle,其中:AMap.bundle 在 MAMapKit.framework 包中,AMap.bundle資源文件中存儲(chǔ)了定位、默認(rèn)大頭針標(biāo)注視圖等圖片,可利用這些資源圖片進(jìn)行開(kāi)發(fā)。
左側(cè)目錄中選中工程名,在右鍵菜單中選擇Add Files to “工程名”…,從MAMapKit.framework中選擇AMap.bundle文件,并勾選“Copy items if needed”復(fù)選框,單擊“Add”按鈕,將資源文件添加到工程中。
成功跑起來(lái) 。。 。
#彈窗
oktoast : ^3.1.5
#路由
get : ^4.5.1
#百度地圖定位
flutter_bmflocation : ^2.0.0-nullsafety.1
#百度地圖-基礎(chǔ)地圖
flutter_baidu_mapapi_map : ^3.0.0+2
#百度地圖-檢索
flutter_baidu_mapapi_search : ^3.0.0
#百度地圖-計(jì)算工具
flutter_baidu_mapapi_utils : ^3.0.0
#屏幕自動(dòng)適應(yīng)
flutter_screenutil : ^5.2.0
#Banner圖切換
flutter_swiper_plus : ^2.0.4
#網(wǎng)絡(luò)請(qǐng)求
dio : ^4.0.4
dio_cache_interceptor : ^3.2.2
pretty_dio_logger : ^1.2.0-beta-1
#城市選擇器
azlistview : ^2.0.0
#本地存儲(chǔ)
get_storage : ^2.0.3
#權(quán)限
permission_handler : ^8.3.0
#保存圖片
image_gallery_saver : ^1.7.1
# image_save: ^5.0.0
#常用工具類(lèi)
common_utils :
path : plugin/common_utils-2.0.2
#選擇器
flutter_picker : ^2.0.2
#生成二維碼
qr_flutter : ^4.0.0
#驗(yàn)證碼輸入框
pin_input_text_field : ^4.1.1
# 漢字轉(zhuǎn)拼音
lpinyin : ^2.0.3
#多張圖片上傳
wechat_assets_picker : ^6.3.1
wechat_camera_picker : ^2.6.3
#裁剪圖片
image_cropper : ^1.5.0
#圖片壓縮
flutter_luban : ^0.1.13
#家譜樹(shù)
graphview : ^1.1.1
vector_math : ^2.1.0
#行為驗(yàn)證碼
steel_crypt : ^3.0.0+1
encrypt : ^5.0.0
#二維碼識(shí)別
flutter_qr_reader : ^1.0.5
#右上角小圖標(biāo)
badges : ^2.0.2
#喚醒系統(tǒng)應(yīng)用
url_launcher : ^6.0.17
flutter_sms : ^2.3.2
#QQ分享
tencent_kit : ^2.1.0
flutter_cache_manager : ^3.3.0
#微信SDK
fluwx : ^3.6.1+4
#支付寶SDK
tobias :
path : plugin/tobias-2.2.0
#個(gè)推
getuiflut : ^0.2.11
#極光推送
# jpush_flutter:
# path: plugin/jpush_flutter-2.2.2
#極光魔鏈
jmlink_flutter_plugin :
path : plugin/jmlink_flutter_plugin-2.1.2
#極光認(rèn)證
jverify :
path : plugin/jverify-2.2.4
#極光統(tǒng)計(jì)
janalytics :
path : plugin/janalytics-2.1.5
#倒計(jì)時(shí)
circular_countdown_timer : ^0.2.0
#加載中效果
flutter_spinkit : ^5.1.0
#APP更新
r_upgrade :
path : plugin/r_upgrade-0.3.7+2
#刷新-加載更多
flutter_easyrefresh : ^2.2.1
#右上角彈出式菜單
custom_pop_up_menu : ^1.2.2
#時(shí)間軸
timeline_tile : ^2.0.0
#虛線邊框
dotted_border : ^2.0.0
like_button : ^2.0.4
#圖片
extended_image : ^6.0.1
#圖片九宮格
nine_grid_view : ^2.0.0
#時(shí)間模糊插件
timeago :
path : plugin/timeago-3.1.0
#屏幕截圖
screenshot : ^1.2.3
#圖片壓縮
flutter_image_compress : ^1.1.0
#List左滑右滑
flutter_slidable : ^1.2.0
#底部伸縮抽屜-針對(duì)地圖
sliding_up_panel : ^2.0.0+1
#鍵盤(pán)高度
flutter_keyboard_size : ^1.0.0+4
#JSON動(dòng)圖
lottie : ^1.2.2
#城市選擇器
city_pickers :
path : plugin/city_pickers-1.0.1
#調(diào)試工具
path_provider : ^2.0.7
#打開(kāi)HTML
webview_flutter : ^2.3.1
#表情
emoji_picker_flutter : ^1.0.8
#扇形進(jìn)度
ai_progress : ^2.0.0
#喜歡按鈕
tiktok_favorite_gesture : ^1.0.0
#獲取手機(jī)信息
device_info : ^2.0.3
#包信息
package_info : ^2.0.2
device_apps : ^2.1.1
#倒計(jì)時(shí)
stop_watch_timer : ^1.3.1
#發(fā)現(xiàn)Android和iOS上的網(wǎng)絡(luò)(WiFi和移動(dòng)/蜂窩)連接狀態(tài)
connectivity_plus : ^2.2.0
#從應(yīng)用程序打開(kāi)iOS和Android手機(jī)設(shè)置。
app_settings : ^4.1.1
#日志上報(bào)
sentry_flutter : ^6.1.2
#后退攔截
back_button_interceptor : ^5.0.2
#視頻播放器
better_player : ^0.0.81
#APP啟動(dòng)圖
flutter_native_splash : ^2.0.4
#JSON-TO-MAPPER
dart_json_mapper : ^2.1.17
#HTML展示
flutter_html : ^3.0.0-alpha.2
#XD to Flutter
adobe_xd : ^2.0.1
flutter_svg : ^1.0.3
#APPBAR背景色漸變
new_gradient_app_bar : ^0.2.0
#音頻播放
flame_audio : ^1.0.0
#入門(mén)介紹頁(yè)
intro_slider : ^3.0.3
#鍵盤(pán)
keyboard_actions : ^3.4.5
emoji_keyboard_flutter : ^1.2.7
#單選選擇框
flutter_pickers : ^2.1.9
名稱(chēng)欄目:flutter跟蹤定位,flutter 獲取定位
網(wǎng)頁(yè)地址:http://chinadenli.net/article6/dsgccog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、App開(kāi)發(fā)、服務(wù)器托管、響應(yīng)式網(wǎng)站、標(biāo)簽優(yōu)化、軟件開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)