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

flutterview,flutterview deprecated

Flutter插件升級后FlutterView.getBitmap()找不到了

升級后implements?ActivityAware后會有實(shí)現(xiàn)onAttachedToEngine方法,F(xiàn)lutterPluginBinding.getFlutterEngine().getRenderer().getBitmap();

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)無棣,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

Flutter初始化

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

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

2,Application配置FlutterApplication。

應(yīng)用Application配置io.flutter.app.FlutterApplication類,App首次啟動時(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í)間,第二次啟動時(shí),若apk未更新,不需要再次抽取。

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

主頁面繼承FlutterActivity,配置啟動模式singleTop。

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

組件啟動,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方法,

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

nativeRunBundleAndSnapshotFromLibrary方法。

任重而道遠(yuǎn)

Flutter 自定義 View 介紹

對于一些復(fù)雜或不規(guī)則的UI,我們可能無法使用現(xiàn)有的 Widget 組合去實(shí)現(xiàn),比如需要一個(gè)帶動畫的進(jìn)度條,

又或者是一個(gè)特殊形狀的多邊形等等,當(dāng)然有時(shí)候我們可以直接用圖片去實(shí)現(xiàn),但是并沒有達(dá)到我們想要

的效果,反而會讓我們產(chǎn)生不良的體驗(yàn)。

幾乎所有的UI系統(tǒng)都會提供一個(gè)自繪UI的接口,這個(gè)接口通常會提供一塊2D畫布Canvas,Canvas內(nèi)部封裝了

一些基本繪制的API,開發(fā)者可以通過Canvas繪制各種自定義圖形。在Flutter中,提供了一個(gè)CustomPaint Widget,

它可以結(jié)合一個(gè)畫筆CustomPainter來實(shí)現(xiàn)繪制自定義圖形。

我們看看 CustomPaint 構(gòu)造函數(shù):

1.painter: 背景畫筆,會顯示在子節(jié)點(diǎn)后面;

2.foregroundPainter: 前景畫筆,會顯示在子節(jié)點(diǎn)前面

3.size:當(dāng)child為null時(shí),代表默認(rèn)繪制區(qū)域大小,如果有child則忽略此參數(shù),畫布尺寸則為child尺寸。如果有child但是想指定畫布為特定大小,可以使用SizeBox包裹CustomPaint實(shí)現(xiàn)。

4.isComplex:是否復(fù)雜的繪制,如果是,F(xiàn)lutter會應(yīng)用一些緩存策略來減少重復(fù)渲染的開銷。

5.willChange:和isComplex配合使用,當(dāng)啟用緩存時(shí),該屬性代表在下一幀中繪制是否會改變。

可以看到,繪制時(shí)我們需要提供前景或者背景畫筆,兩者也可以同時(shí)提供,

我們的畫筆需要繼承 CustomPainter 類,我們在畫筆類中實(shí)現(xiàn)真正的繪制邏輯。

顧名思義畫布的意思,我們繪制布局當(dāng)然是在一張畫布上進(jìn)行繪制,畫布為我們繪制圖形提供了很多方法。(熟悉畫布的就無需再看了)

在繪制之前我們需要準(zhǔn)備畫筆 Paint,就如畫畫一樣,你用什么筆就能畫什么樣的畫,在Paint中,

我們可以配置畫筆的各種屬性如粗細(xì)、顏色、樣式等。如:

好了,繼承CustomPainter類,然后準(zhǔn)備好畫筆,就可以在畫布上盡情的揮灑了!

寫的挺簡單的,就是介紹了一下自定義view的準(zhǔn)備工作以及畫布畫筆的功能,具體實(shí)戰(zhàn)請看下一篇博客。

flutter 1.22.1 初始化FlutterViewController 報(bào)錯(cuò)

FlutterViewController *www = [FlutterViewController new]; ? ? dart 1.22.1 直接初始化 然后報(bào)錯(cuò),有知道是怎么解決的沒

-[__NSCFBoolean objectForKey:]: unrecognized selector sent to instance 0x7fff8019dd18

關(guān)于 FLutter顯示原生視圖 View(iOS 篇)并交互

① 創(chuàng)建原生視圖,可提供外界調(diào)用的方法 / 屬性等。

② 創(chuàng)建遵守 FlutterPlatformViewFactory協(xié)議的 NSObject class 類

③ 創(chuàng)建遵守 FlutterPlatformView 協(xié)議的 NSObject class 類

④ 在 Appdelegate 中注冊

創(chuàng)建個(gè)通信 dart 文件

dart 文件中使用:

網(wǎng)站欄目:flutterview,flutterview deprecated
標(biāo)題來源:http://chinadenli.net/article13/dsepegs.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷關(guān)鍵詞優(yōu)化外貿(mào)建站App開發(fā)微信公眾號品牌網(wǎng)站設(shè)計(jì)

廣告

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

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