久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

flutter返回桌面,flutter 桌面

Flutter點擊返回鍵,回到桌面,但不退出APP的實現(xiàn)

只有Android手機上才會有返回APP的操作,所以以下所說的是針對Flutter的Android平臺上開發(fā),現(xiàn)在flutter的版本已經(jīng)升級到1.22.0以上了,很多舊方法都不能用了,網(wǎng)絡上有很多案例都是針對舊的flutter版本,所以我這邊就做過新版本的該功能,方便大家參考一下

公司主營業(yè)務:網(wǎng)站設計、網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出新平免費做網(wǎng)站回饋大家。

這是新舊flutter編寫返回到桌面的最大區(qū)別,以前可以在MainActivity直接編寫能用的插件,但是現(xiàn)在不行了,很多方法都沒有了,因此,我們需要新啟一個插件 app_util_plugin,編寫網(wǎng)上有很多教程,這里就不在贅述了

插件模塊

編寫插件調(diào)用方法

在main.dart監(jiān)聽系統(tǒng)返回鍵,當時調(diào)用系統(tǒng)返回鍵時,將它攔截下來,再調(diào)用插件中的返回桌面的方法,這樣就可以不用退出APP,就可以回到桌面了

整個過程很簡單,希望可以幫到flutter 的初學者們

Flutter開發(fā)之Android物理按鍵返回

在flutter開發(fā)過程中,發(fā)現(xiàn)Android手機在App首頁點擊物理返回按鈕時,App會退出并且再次點開App時會重新啟動,這代表了上次的退出直接殺死了App,和我們平常的退到手機桌面不同,所以開發(fā)了一個單獨插件來處理這種情況。

使用步驟如下:

1、pubspec.yaml文件中引入依賴

2、引用插件

3、使用插件來退出App到桌面,并且保持App后臺運行

可根據(jù)實際情況在_onWillPop方法中處理相關邏輯,比如連續(xù)兩次點擊物理返回按鈕才退出到桌面等。

Android原生和Flutter使用過程的差異對比(二)

1、常用布局的對比

使用下來其他組件大致還算方便,但是相對布局而言使用便利程度上Android原生完勝,ConstraintLayout內(nèi)部的所有子View可以設置互相之間的位置依賴關系。

而Flutter的Stack組件內(nèi)部的Children只能通過外層包裹 Align后 固定位置,比如 Alignment.topLeft、Alignment.bottomRight 等。遇到復雜的堆疊布局需要通過外層包裹 Positioned 組件后設置固定的 top 和 left 距離以達到效果,內(nèi)部子組件之間無法設置位置關聯(lián)關系。

2、一些常用屬性設置上的差異:

Margin外邊距

Android:直接在布局文件對View設置android:layout_marginStart、android:layout_marginTop

Flutter:需嵌套 Container 組件并在內(nèi)部設置具體的 margin 值

Padding內(nèi)邊距

Android:TextView、ImageView、各種Layout都可以直接在屬性上設置android:paddingStart

Flutter:需嵌套 Padding 組件并在內(nèi)部設置具體的值

組件的可見性

Android:每個view都可以通過setVisibility來設置可見、隱藏或者隱藏但占位

Flutter:沒有單獨設置組件是否顯示的api,只能通過 bool 值控制是否添加該組件

事件監(jiān)聽

Android:常規(guī)的setOnClickListener和setOnLongClickListener設置單擊和長按事件

Flutter:在需要添加事件監(jiān)聽的組件外層嵌套 InkWell 或 GestureDetector 并設置 onTap 等

3、生命周期

Android:

Activity和Fragment各自有完整的生命周期鏈路onCreate、onStart、onResume、onPause、onDestroy等

Flutter:

萬物皆組件,組件繼承 WidgetsBindingObserver 并重寫 didChangeAppLifecycleState 函數(shù)進行監(jiān)聽

退回桌面依次執(zhí)行inactive 》= paused,此時界面不可見用戶不可操作,從桌面重新進入app執(zhí)行resumed,狀態(tài)較少如需在某些條件下觸發(fā)特定操作可能要找別的方案,比如發(fā)通知之類的

Flutter/IOS混和開發(fā)情況下,項目內(nèi)首個Flutter頁面導航無返回問題

在Flutter內(nèi)部機制中,默認使用自動管理導航機制,該機制在Flutter與原生混和開發(fā)情況下,F(xiàn)lutter頁面不一定作為項目的首頁面,所以出現(xiàn)需要在首個Flutter頁面使用導航返回的需求。

Flutter的AppBar中定義有屬性:

該屬性默認為YES,即默認為自動管理導航欄,該情況下其會在非第一個Flutter頁面創(chuàng)建導航返回按鈕,我們在AppBar中將其設置為false:

并且手動添加導航返回按鈕:

完成

flutter跳轉(zhuǎn)原生頁面后的穿透問題

現(xiàn)象:

flutter頁面通過present跳轉(zhuǎn)原生頁面后,原生頁面上的點擊會首先響應下面的flutter頁面中的內(nèi)容(比如按鈕什么的)。

這是flutter框架一直存在的一個bug。在github上有相關的issue。

原因推測:

推測是flutter對控制器(或者view)加了分類,重寫了控制器的點擊事件,用來計算是否在對應的點擊位置有flutter響應事件。沒有的話再扔出去點擊事件。

解決方案1:

在原生控制器中,加入點擊事件的幾個方法的空實現(xiàn),用以覆蓋flutter框架中的實現(xiàn):

-(void)touchesBegan:(NSSetUITouch * *)touches withEvent:(UIEvent *)event{

}

-(void)touchesMoved:(NSSetUITouch * *)touches withEvent:(UIEvent *)event{

}

-(void)touchesCancelled:(NSSetUITouch * *)touches withEvent:(UIEvent *)event{

}

-(void)touchesEnded:(NSSetUITouch * *)touches withEvent:(UIEvent *)event{

}

讓事件不被flutter截獲即可。

解決方案2:

直接切換window的根控制器到原生控制器即可。別忘暫時保存flutter控制器。

在返回時再切換回flutter中。

解決方案3:

在flutter跳轉(zhuǎn)到原生頁面之前,在flutter中加上一個蒙層,用來隔絕手勢往flutter下面的view傳遞。原生頁面返回flutter時再移除這個蒙層。

當前文章:flutter返回桌面,flutter 桌面
瀏覽地址:http://sd-ha.com/article28/hoocjp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站內(nèi)鏈建站公司、搜索引擎優(yōu)化、動態(tài)網(wǎng)站企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)