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

flutter視圖的簡單介紹

Flutter移動應(yīng)用:視圖(PageView,GridView)

主要屬性

創(chuàng)新新互聯(lián),憑借10多年的成都做網(wǎng)站、成都網(wǎng)站設(shè)計經(jīng)驗,本著真心·誠心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計網(wǎng)站有近千家案例。做網(wǎng)站建設(shè),選成都創(chuàng)新互聯(lián)

//創(chuàng)建一個帶 title 的 item

//通過傳入 length 多少個來創(chuàng)建多少個 item

Flutter 在body中設(shè)置TabBar和TabBarView

最近在開發(fā)中想實現(xiàn)一個AppBar下面有選項卡,來回切換的頁面功能,百度了很多沒有和自己需求符合的,網(wǎng)上大都是返回的Scaffold,使用系統(tǒng)的Appbar,添加至.bottom中,但是現(xiàn)在項目中用的是自定義的Appbar,不想破壞系統(tǒng)的統(tǒng)一封裝。

所以在body 中實現(xiàn)TabBar 和 TabBarView,開始使用Column一直不行,只能顯示一個,但是在body里面同時放置 TabBar 和 TabBarView需要注意

TabBarView 的父 Widget 必須知道寬高才能布局,否則,會報錯:BoxConstraints forces an infinite height.

使用 Column + Expanded 即可:

注:還有設(shè)置tabbar的tab背景顏色,tabbar中的tab的背景顏色取的實際是AppBar的主題色,所以我們將tabbar放在Material中來重置了主題色,變成我們想要的背景色.

buildTabBar為創(chuàng)建TabBar的方法:

buildBodyView創(chuàng)建視圖方法:

Flutter初始化

新建一個Flutter工程,android模塊。

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

2,Application配置FlutterApplication。

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

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

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

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

initResources方法, 初始化資源。

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

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

在目錄中創(chuàng)建一個時間戳文件,根據(jù)apk版本和包信息記錄的lastUpdateTime更新時間,第二次啟動時,若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基礎(chǔ)篇——常用Widget

對于初學(xué)flutter的朋友來說,要知道,flutter的UI萬物皆Widget。

flutter所寫的頁面的結(jié)構(gòu)可以被看成套娃,一層套一層,一層套一層,一層套一層。。。。。。

Flutter Widget采用現(xiàn)代響應(yīng)式框架構(gòu)建,這是從 React 中獲得的靈感,中心思想是用widget構(gòu)建你的UI。 Widget描述了他們的視圖在給定其當(dāng)前配置和狀態(tài)時應(yīng)該看起來像什么。當(dāng)widget的狀態(tài)發(fā)生變化時,widget會重新構(gòu)建UI,F(xiàn)lutter會對比前后變化的不同, 以確定底層渲染樹從一個狀態(tài)轉(zhuǎn)換到下一個狀態(tài)所需的最小更改。

Text : 該 widget 可讓創(chuàng)建一個帶格式的文本。

Row 、 Column : 這些具有彈性空間的布局類Widget可讓您在水平( Row )和垂直( Column )方向上創(chuàng)建靈活的布局。

Stack :取代線性布局 (和Android中的LinearLayout相似),Stack允許子 widget 堆疊, 你可以使用 Positioned 來定位他們相對于 Stack 的上下左右四條邊的位置。

Container : Container 可讓您創(chuàng)建矩形視覺元素。 您可以為 Container 裝飾一個 BoxDecoration , 如 background、一個邊框、或者一個陰影。 Container 也可以具有邊距(margins)、填充(padding)和應(yīng)用于其大小的約束(constraints)。另外, Container 可以使用矩陣在三維空間中對其進(jìn)行變換。

具體的演示見我另外的博客

有一部分Widget都有一個 child 屬性,用于容納唯一的子Widget。

例如:Container、Center、Padding、Align等Widget。

還有一部分Widget允許存在多個子Widget,用 children 作為屬性。

例如:Row、Column、Stack等Widget。

在StatefulWidget調(diào)用createState之后,框架將新的狀態(tài)插入樹種,然后調(diào)用狀態(tài)對象的initState。子類化State可以重寫initState,以完成僅需要一次執(zhí)行的工作。當(dāng)然在initState的實現(xiàn)中需要調(diào)用super.initState

當(dāng)一個狀態(tài)對象不再需要時,框架調(diào)用狀態(tài)對象的dispose。也可以通過覆蓋dispose方法來執(zhí)行清理工作。

OVER~

文章名稱:flutter視圖的簡單介紹
分享路徑:http://chinadenli.net/article17/dsgohgj.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣品牌網(wǎng)站制作ChatGPT企業(yè)建站用戶體驗網(wǎng)站策劃

廣告

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

網(wǎng)站托管運(yùn)營