欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

flutter啟動(dòng)頁(yè)面,flutter自動(dòng)登錄

Flutter應(yīng)用啟動(dòng)頁(yè)設(shè)置,解決 白/黑 屏情況

出現(xiàn)此情況的原因有兩種

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、網(wǎng)頁(yè)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、青浦網(wǎng)站維護(hù)、網(wǎng)站推廣。

解決:

找到 \app\src\main\res\drawable\launch_background.xml 文件,這個(gè)里面初始化了布局標(biāo)簽,只需要把圖片替換為我們自己的就可以。

或者根據(jù)不同手機(jī)的分辨率 在mipmap下放置圖片例如:

之后前往 styles.xml 文件設(shè)置啟動(dòng)頁(yè)

重新打包就可以看到 剛剛設(shè)置的啟動(dòng)頁(yè)了

效果例如:

[圖片上傳失敗...(image-7e5c2-1586668143446)]

至此可以流暢的打開啟動(dòng)頁(yè)了

2022-04-22iOS項(xiàng)目混編flutter,iOS真機(jī)debug模式下打不開flutter頁(yè)面

最近項(xiàng)目中要集成flutter來(lái)進(jìn)行混編,但是在集成后,突然遇到一個(gè)很神奇的問(wèn)題,在debug模式下,用數(shù)據(jù)線連接真機(jī)打包可以打開flutter頁(yè)面,但是一旦拔掉數(shù)據(jù)線,再打開flutter頁(yè)面就不行了,開始以為是因?yàn)閒lutterSDK的原因,但是一查資料才發(fā)現(xiàn),原來(lái)是因?yàn)閐ebug模式下flutter實(shí)現(xiàn)了熱重載,默認(rèn)的編譯方式是JIV,但是iOS14+之后的系統(tǒng)限制了JIV這種編譯方式,所以連接X(jué)code重新run一個(gè)release包就可以了,因?yàn)閒lutter在release模式下的編譯方式是AOT,iOS14+的系統(tǒng)是支持這種編譯方式的,具體解決方案如下圖

再運(yùn)行就可以了。

當(dāng)然還有另外一種解決方案,就是修改flutter的編譯配置,強(qiáng)制設(shè)為release

(1)Flutter記錄之啟動(dòng)頁(yè)

一年半前玩過(guò)flutter,忘光光...現(xiàn)在是時(shí)候重新拾取了。~

啟動(dòng)頁(yè)一般只放圖片或者加幾行文字。

1、創(chuàng)建好flutter項(xiàng)目之后,在lib文件下面新建launch.dart或xx.dart.

2、在根目錄下新建images文件夾,如已有直接放入圖片

3、flutter_yijiake.iml中加入注入該圖片,并注意空格

4、在根目錄下的test/widget_test.dart中更改默認(rèn)的啟動(dòng)頁(yè)為當(dāng)前的啟動(dòng)頁(yè)路徑

5、最后重新設(shè)置啟動(dòng)時(shí)的頁(yè)面

6、非常簡(jiǎn)單的啟動(dòng)頁(yè)面放logo圖片

值得一說(shuō)的是,flutter框架的UI組件需要已new 組件的形式展開。

在Flutter開發(fā)iOS中,app啟動(dòng)黑屏之后顯示啟動(dòng)頁(yè)的解決辦法

一、由于安卓那邊升級(jí)了某些插件,我這邊pull之后,進(jìn)行了Pub get。運(yùn)行ios項(xiàng)目,發(fā)現(xiàn)app啟動(dòng)之后,先閃現(xiàn)黑屏,然后再出現(xiàn)啟動(dòng)頁(yè),之后在進(jìn)入主頁(yè)面。解決此問(wèn)題的方法,是把啟動(dòng)頁(yè)的圖片移除,把啟動(dòng)頁(yè)的圖片修改一個(gè)新名字,再導(dǎo)入項(xiàng)目中,再重新運(yùn)行項(xiàng)目,就正常了。

Flutter(六)Android與Flutter混合開發(fā)(Hybird)

如果我們目前的項(xiàng)目是Android的,但是接下來(lái)我們希望部分頁(yè)面可以使用Flutter進(jìn)行開發(fā),甚至我們希望在Native頁(yè)面中嵌入FlutterUI組件,那么我們?cè)撊绾螌?shí)現(xiàn)呢?

假設(shè)你現(xiàn)在Android項(xiàng)目的目錄的結(jié)構(gòu)是這樣的

這時(shí)候如果你想創(chuàng)建一個(gè)Flutter模塊,使得Android模塊和Flutter模塊之間可以進(jìn)行交互,我們可以通過(guò)Android Studio新建一個(gè)Flutter Module,具體過(guò)程是:File — New — New Module ,之后選擇Flutter Module,指定Project Location的路徑為

也就是說(shuō),最終你的項(xiàng)目結(jié)構(gòu)會(huì)是這樣的

接下來(lái)在Android Module的 build.gradle 文件中添加flutter依賴

先創(chuàng)建一個(gè)Flutter頁(yè)面

這里比較重要的是 window.defaultRouteName 這個(gè)字段,這個(gè)字段可以接收從Native傳遞過(guò)來(lái)的參數(shù) (下文我們會(huì)介紹原生傳遞參數(shù)的方法),也就是說(shuō)通過(guò)這個(gè)字段我們就可以進(jìn)行Flutter頁(yè)面的路由的分發(fā)

我們可以直接在Android的 MainActivity 中啟動(dòng)一個(gè) FlutterActivity ,這里的 initialRoute 方法中傳遞的參數(shù)就對(duì)應(yīng)Flutter層的 window.defaultRouteName

注意:需要在 AndroidManifest.xml 注冊(cè) FlutterActivity

自己創(chuàng)建一個(gè) FlutterAppActivity 繼承自 FlutterActivity

在 MainActivity 中啟動(dòng) FlutterAppActivity (另外別忘了在 AndroidManifest.xml 中注冊(cè) FlutterAppActivity )

兩種啟動(dòng)方式的區(qū)別

如果單純只是想打開一個(gè)Flutter頁(yè)面,兩種方式實(shí)際上基本沒(méi)有太大區(qū)別,第一種方式也許還會(huì)更簡(jiǎn)單一點(diǎn)。但是,在Flutter開發(fā)中,我們往往還需要開發(fā)一些Native插件供Flutter調(diào)用,如果使用復(fù)寫 FlutterActivity 的方式更有利于我們?cè)?FlutterActivity 中注冊(cè)我們的Native插件,所以實(shí)際開發(fā)中一般推薦使用第二種方式

擴(kuò)展思考

initialRoute 從名稱上看起來(lái)是Flutter提供給我們進(jìn)行Native與Flutter交互的路由跳轉(zhuǎn)的,但是實(shí)際上他就是一個(gè)字符串,我們不僅僅可以傳遞一個(gè)路由名稱,有時(shí)候我們也可以通過(guò)這個(gè)參數(shù)傳遞一串JSON數(shù)據(jù),然后在Flutter端進(jìn)行解析,這樣我們就可以通過(guò)這個(gè)參數(shù)做更多的事情

activity_main.xml

FrameLayout 用于承載Flutter組件

MainActivity.java

使用 FragmentManager 將 FlutterFragment 添加到 FrameLayout 容器中

運(yùn)行結(jié)果

上半部分是原生的TextView,下半部分是Flutter的Text組件

本節(jié)主要介紹了Native和Flutter之間的頁(yè)面跳轉(zhuǎn),以及同一個(gè)頁(yè)面中Native與Flutter組件的組合。接下來(lái)會(huì)介紹如何編寫Android插件與Flutter進(jìn)行數(shù)據(jù)交互

Flutter初始化

新建一個(gè)Flutter工程,android模塊。

1,只有一個(gè)Activity組件,它是Dart層繪制Widget的容器。

2,Application配置FlutterApplication。

應(yīng)用Application配置io.flutter.app.FlutterApplication類,App首次啟動(dòng)時(shí),初始化。

調(diào)用FlutterMain.startInitialization()方法。

initConfig方法,從AndroidManfest.xml配置的applicaion節(jié)點(diǎn)獲取meta-data數(shù)據(jù),初始化以下默認(rèn)值。

這些值都是使用中用到的name,例如,抽取apk中asset資源時(shí),flutter_assets打包目錄,打包產(chǎn)物data名稱。

initResources方法, 初始化資源。

在Flutter打包apk的asset目錄下,包括fluttter_asset目錄/資源項(xiàng),將資源從apk中抽取,保存在 Context.getDir("flutter", 0) 目錄下。

/data/user/0/包名/app_flutter目錄。

在目錄中創(chuàng)建一個(gè)時(shí)間戳文件,根據(jù)apk版本和包信息記錄的lastUpdateTime更新時(shí)間,第二次啟動(dòng)時(shí),若apk未更新,不需要再次抽取。

加載so庫(kù),libflutter.so,System.loadLibrary()。

主頁(yè)面繼承FlutterActivity,配置啟動(dòng)模式singleTop。

FlutterActivity類在io.flutter.app包, (區(qū)別io.flutter.embedding.android包), 組件生命周期委托給FlutterActivityDelegate類。

組件啟動(dòng),onCreate方法。

FlutterMain.ensureInitializationComplete方法,確保資源成功抽取完成,創(chuàng)建FlutterView視圖(io.flutter.view),繼承SurfaceView類,setContentView方法,設(shè)置組件主布局即FlutterView視圖。

最后,根據(jù)Bundle路徑,runBundle()加載運(yùn)行,

調(diào)用FlutterView的runFromBundle方法,入口點(diǎn)在dart的main方法,

通過(guò)FlutterNativeView,調(diào)用FlutterJNI的native方法。

nativeRunBundleAndSnapshotFromLibrary方法。

任重而道遠(yuǎn)

分享標(biāo)題:flutter啟動(dòng)頁(yè)面,flutter自動(dòng)登錄
路徑分享:http://www.chinadenli.net/article48/dscojhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版網(wǎng)站收錄外貿(mào)網(wǎng)站建設(shè)面包屑導(dǎo)航定制開發(fā)App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(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)

h5響應(yīng)式網(wǎng)站建設(shè)