一、前言
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比泰山網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式泰山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋泰山地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
Flutter開發(fā),就需要對各種狀態(tài)的管理,就是在請求數(shù)據(jù)的時候需要實時變化,各種交互變化等,在沒有使用GetX之前使用Provider,用Provider的時候覺得真香,挺方便的,需要刷新的時候直接 notifyListeners(); 用了GetX之后覺得Provider太繁瑣了。這邊介紹下GetX的使用以及常用的方法。
二、 GetX
GetX 是 Flutter 上的一個輕量且強大的解決方案:高性能的狀態(tài)管理、智能的依賴注入和便捷的路由管理。
1、相關優(yōu)勢:
三、使用
1、第一步 引入get
2、第二步
修改入口、配置路由
3、路由
Routes類
Pages類
4、狀態(tài)管理
我一般一個page對應一個controller, controller來處理邏輯,控制page.
簡單使用
5、依賴注入
依賴注入也是我喜歡的,可以減少很多工作。
第一步
第二步
6、跨頁面交互
7、黑暗模式
可以參考前期寫的博客。 黑暗模式的適配
首先,你需要導入 services 包 :
我們可以通過 SystemChrome 這個類的 setPreferredOrientations方法來設置屏幕方向。
setPreferredOrientations()方法,參數(shù)是一個數(shù)組 ,我們可以設置多個方向(定義在 DeviceOrientation 枚舉類中)。
在Flutter中主函數(shù)入口是 main()方法,如果我們想設置整個應用的屏幕方向,在runApp()方法之前設置即可。
注意 : 設置屏幕方法調(diào)用之前,需要調(diào)用一下 binding 的初始化方法(先記住即可)
landscapeLeft or landscapeRight 可以設置一個或者兩個,效果試一下就知道了
設置屏幕垂直方向 :
動態(tài)改變屏幕方向 :
獲取當前屏幕方向 :
參考 :
(自備梯子)
如果覺得文章有用,幫忙點個喜歡?? ,???????????? 贈人玫瑰,手留余香
首先查看入口函數(shù):
類MyApp:
MyHomePage:
state:
build:
此demo頁面涉及到兩個組件:圖片和icon。在這里做一個簡單的介紹,更詳細的學習請參考flutter官網(wǎng)和相關書籍
在flutter中,我們可以通過Image組件來加載并顯示圖片,Image的數(shù)據(jù)源可以是asset、文件、內(nèi)存以及網(wǎng)絡。
ImageProvider 是一個抽象類,主要定義了圖片數(shù)據(jù)獲取的接口 load() ,從不同的數(shù)據(jù)源獲取圖片需要實現(xiàn)不同的 ImageProvider ,如 AssetImage 是實現(xiàn)了從Asset中加載圖片的ImageProvider,而 NetworkImage 實現(xiàn)了從網(wǎng)絡加載圖片的ImageProvider。
Image也提供了一個快捷的構造函數(shù) Image.asset 用于從asset中加載、顯示圖片:
Image也提供了一個快捷的構造函數(shù) Image.network 用于從網(wǎng)絡加載、顯示圖片:
Flutter中,可以像web開發(fā)一樣使用iconfont,iconfont也即"字體圖標",它是將圖標做成字體文件,然后通過指定不同的字符而顯示不同的圖片。
加號為圖片組件,減一為icon組件。點擊加號,數(shù)字加1;點擊-1,數(shù)字減少1。
插件入口
以下是Docker搭建Sentry平臺的步驟,請保證每一步執(zhí)行完成:
-啟動 Sentry Server,同時添加端口映射。Sentry的端口為9000,可以使用 -p 9000:9000 參數(shù),在啟動后可以通過訪問 或 進入Sentry的web管理頁面:
進入Web管理頁面后,按照提示配置管理員賬號密碼與其他信息。注意:URL填寫你所訪問的地址,如 。
配置成功后,按順序進入Project-internal-Setting頁面, 選擇右側(cè)Release標簽
復制WEBHOOK中的curl命令,打開終端發(fā)送請求,即可在頁面上看到測試的錯誤日志信息:
新建一個Flutter工程,android模塊。
1,只有一個Activity組件,它是Dart層繪制Widget的容器。
2,Application配置FlutterApplication。
應用Application配置io.flutter.app.FlutterApplication類,App首次啟動時,初始化。
調(diào)用FlutterMain.startInitialization()方法。
initConfig方法,從AndroidManfest.xml配置的applicaion節(jié)點獲取meta-data數(shù)據(jù),初始化以下默認值。
這些值都是使用中用到的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方法,設置組件主布局即FlutterView視圖。
最后,根據(jù)Bundle路徑,runBundle()加載運行,
調(diào)用FlutterView的runFromBundle方法,入口點在dart的main方法,
通過FlutterNativeView,調(diào)用FlutterJNI的native方法。
nativeRunBundleAndSnapshotFromLibrary方法。
任重而道遠
文章題目:flutter入口,flutter
分享地址:http://www.rwnh.cn/article8/dssoiop.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序、建站公司、靜態(tài)網(wǎng)站、面包屑導航、App開發(fā)、網(wǎng)站導航
聲明:本網(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)