1.說明:

創(chuàng)新互聯(lián)長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為宜都企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、網(wǎng)站制作,宜都網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
我們都知道在使用 Android 原生開發(fā) app 的時候不同分辨率的圖片放置到下面對應(yīng)的文件夾中:
但是使用 Flutter 開發(fā) app 時卻有不同,他們也有一個對應(yīng)的關(guān)系,按照他們的對應(yīng)關(guān)系建立文件夾就可以了,如下:
2.使用:
首先在 Flutter 項目根目錄中創(chuàng)建一個 images 文件夾用來存放圖片資源;
然后在項目目錄下找到 pubspec.yaml 文件打開,聲明圖片資源;
如何加載不同分辨率的圖呢,例如 android 中的 hdpi,xhdpi,xxhdpi 和 ios 中的 1x,2x,3x。只需要在 images 文件夾中在創(chuàng)建兩個 2.0x,3.0x 文件夾用來存放 2x,3x 的圖片資源:
如上圖,1.0x 圖片放到了 account 文件夾中,account 文件夾下又有 1.5x、2.0x、3.0x、4.0x 文件夾,分別存放對應(yīng)分辨率的圖片,這里要注意文件夾的對應(yīng)關(guān)系。
使用圖片時,只需要使用 account 文件夾下的圖片就行了,系統(tǒng)會根據(jù)手機(jī)的分辨率,加載對應(yīng)文件夾中的圖片,如:
最近項目中,用到了flutter中的webview加載帶有echarts控件的html文件,但是發(fā)現(xiàn)圖表一直無法顯示,通過查詢相關(guān)資料,分析apk包文件,知道了是由于flutter項目中的文件打包后的路徑發(fā)生變化,造成找不到相關(guān)依賴,特此記錄一下,使用下面這個方法便可以解析出Android和IOS打包后的apk中資源文件的實際位置。
例如,你的資源文件是在flutter項目的根目錄下的 'assets/files/echart-pie.html',
那 'getAssetsPath('assets/files/echart-pie.html')'才是打包成apk后,資源文件的實際路徑。
按照上面的操作,你會發(fā)現(xiàn)在android設(shè)備上已經(jīng)可以正常顯示本地html頁面了,但是IOS設(shè)備上還是一臉懵逼;不要慌,這塊是由于webview_flutter本來就不支持加載本地文件,這時我們還需要修改下插件IOS部分的源碼,F(xiàn)lutterWebView.m文件:
通過以上騷操作,就可以實現(xiàn)webview_flutter在android和ios設(shè)備上加載本地html文件了。
最后:推薦一個插件,已經(jīng)在官方的基礎(chǔ)上進(jìn)行了優(yōu)化
webview_flutter_plus
flutter加載h5很卡的解決方法如下:
一種臨時解決方案,在切換動畫加載完畢后,再去構(gòu)造 WebView,這樣從用戶角度上看,就不會有路由切換動畫的卡頓了。class WebViewPage extends StatefulWidget {undefined
final String uri;
WebViewPage({undefined
@required this.uri,
}) : assert(uri != null);
@override
_WebViewPageState createState() = _WebViewPageState();
}
class _WebViewPageState extends State {undefined
WebViewController _controller;
bool _animationCompleted = false;
@override
Widget build(BuildContext context) {undefined
// 主要是下面的代碼
var route = ModalRoute.of(context);
if (route != null !_animationCompleted) {undefined
void handler(status) {undefined
if (status == AnimationStatus.completed) {undefined
route.animation.removeStatusListener(handler);
setState(() {undefined
_animationCompleted = true;
});
}
}
route.animation.addStatusListener(handler);
}
return Scaffold(
title: widget.title,
backgroundColor: Colors.white,
body: _animationCompleted
? WebView(
initialUrl: 'about:blank',
onWebViewCreated: (WebViewController webViewController) {undefined
_controller = webViewController;
_loadHtmlFromAssets();
},
)
: Container(),
);
}
_loadHtmlFromAssets() async {undefined
var uri = Uri.dataFromString(
await rootBundle.loadString(widget.uri),
mimeType: 'text/html',
encoding: Encoding.getByName('utf-8'),
).toString();
_controller.loadUrl(uri);
}
}
Fluent是目前國際上比較流行的商用CFD軟件包,在美國的市場占有率為60%,凡是和流體、熱傳遞和化學(xué)反應(yīng)等有關(guān)的工業(yè)均可使用。
它具有豐富的物理模型、先進(jìn)的數(shù)值方法和強(qiáng)大的前后處理功能,在航空航天、汽車設(shè)計、石油天然氣和渦輪機(jī)設(shè)計等方面都有著廣泛的應(yīng)用。
FLUENT軟件包含基于壓力的分離求解器、基于密度的隱式求解器、基于密度的顯式求解器,多求解器技術(shù)使FLUENT軟件可以用來模擬從不可壓縮到高超音速范圍內(nèi)的各種復(fù)雜流場。
FLUENT軟件包含非常豐富、經(jīng)過工程確認(rèn)的物理模型,由于采用了多種求解方法和多重網(wǎng)格加速收斂技術(shù),因而FLUENT能達(dá)到最佳的收斂速度和求解精度。
靈活的非結(jié)構(gòu)化網(wǎng)格和基于解的自適應(yīng)網(wǎng)格技術(shù)及成熟的物理模型,可以模擬高超音速流場、傳熱與相變、化學(xué)反應(yīng)與燃燒、多相流、旋轉(zhuǎn)機(jī)械、動/變形網(wǎng)格、噪聲、材料加工等復(fù)雜機(jī)理的流動問題。
圖片加載過程是由ImageProvider觸發(fā)的。而ImageProvider表示異步獲取圖片數(shù)據(jù)的操作,可以從資源,網(wǎng)絡(luò),文件等不同的渠道獲取。
首先,ImageProvider根據(jù)_ImageState中傳遞的圖片配置生成對應(yīng)的圖片緩存key,然后去ImageCache中查找是否由對應(yīng)的圖片緩存,如果有,通知刷新對應(yīng)的UI;如果沒有通過ImageStream異步加載,加載完成后更新緩存,然后通知_ImageState刷新UI。
ImageCache采用的是LRU(Least Recently Used)
網(wǎng)站標(biāo)題:flutter加載,flutter加載大量圖片卡頓
本文網(wǎng)址:http://chinadenli.net/article42/dsgecec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、動態(tài)網(wǎng)站、網(wǎng)站排名、營銷型網(wǎng)站建設(shè)、微信公眾號、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)