bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

flutter取整,float取整和取小數(shù)

小于1像素的渲染探究

下圖看起來和使用Container做的線顯示效果一樣

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的北戴河網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

Flutter 官方對解釋的不是很清楚

通過測試對比發(fā)現(xiàn)Flutter在渲染小于1邏輯像素的線的時候,其高度是按1邏輯像素去展示的,只不過看到的顏色會不一樣,當(dāng)設(shè)置線的高度不是整數(shù)邏輯像素時,線的高度是線上取整后的邏輯像素,只不過看到的線上下邊緣的顏色會隨著小數(shù)部分的值越大顏色越接近設(shè)置的顏色。也就是說flutter是以1邏輯像素的整數(shù)倍去顯示的,如果是非整數(shù)倍邏輯像素線上下邊緣的顏色會跟設(shè)置的不一樣(以灰度的方式顯示出來)。

ios 原生目前也可以展示小于1物理像素的點,但是以UIView的控件做的線,其高度有個臨界值,低于臨界值的線會顯示不出來,而且其顯示的線邊緣比較銳利,其高度在到某一臨界值后會直接變高,而不是在線上下邊緣做灰度展示。而用原生繪制出來的線展示小于以邏輯像素的時候其高度均展示為1邏輯像素,不過顏色值會以灰度的方式展示出來,在達到邏輯像素的整數(shù)倍時展示設(shè)置的顏色,這是和flutter一樣的。

比如拿iPhone 6s 舉例,其屏幕寬度是2.3英寸,橫向上有750顆像素點,ppi = 750/2.3 = 326,既每寸上有326個物理像素,換算成厘米也就是 326/2.54 = 128.35,也就是說每厘米上有128.35個物理像素點,每毫米有13個物理像素點,也就是每個物理像素點的寬度是0.077毫米。6s 的邏輯寬度是375,橫向上每厘米有375/(2.3*2.54) = 64邏輯像素/cm,也就是6s上每個邏輯像素的寬度是0.156毫米。當(dāng)我們設(shè)置一邏輯像素寬度時其在6s上對應(yīng)的寬度是0.156毫米。

flutter 運算符

算數(shù)運算符:加(+) 減(-) 乘(*) 除(/) 取余(%) 取整(~/)

關(guān)系運算符:(==)(!=)()()(=)(=)

邏輯運算符:(!)()(||)

賦值運算符:(=)(??=)(+=)(-=)(*=)(/=)(%=)(~/=)

Flutter性能優(yōu)化

1.圓角對性能的影響

盡量避免用Clipxxx組件,建議用BoxDecoration的image屬性實現(xiàn),如果用Clipxxx組件,圓角取整后性能會提升。

2.減少重繪

根據(jù)場景合理使用RePaintBoundary,使繪制獨立于父布局,避免重繪,提升性能,但過度使用增加的圖層會帶來Raster合成的耗時。例如scrollview是滑動過程會導(dǎo)致所有的節(jié)點都重繪,可以在scrollview下一層使用RePaintBoundary。

3.滾動步長插值器優(yōu)化(了解)

官方的滾動差值器在出現(xiàn)小卡頓時,滾動步長會出現(xiàn)大的跳躍,導(dǎo)致體感上出現(xiàn)很明顯的抖動,優(yōu)化步長偏移量算法與原生效果對齊。

4.開啟SurfaceView

官方推薦Flutter用SurfaceView ,因為SurfaceView與應(yīng)用窗口內(nèi)容分隔開,在專有硬件中合成,產(chǎn)生的中間副本少于TextureView,所以性能高,占用內(nèi)存少,但是在混合棧遇到的問題需要突破

5.使用RepaintBoundary 提升頻繁重繪控件的性能。使用RelayoutBoundary提升頻繁修改大小,增刪的布局中也可以提升性能。

6.build中不要去寫大量的耗時邏輯,因為數(shù)據(jù)更新會觸發(fā)build的多次調(diào)用,在里面做耗時邏輯會降低性能。

7.盡量使用statelessWidget代替statefulWidget,因為statefulWidget的銷毀重建會引起子widget的銷毀與重建。

8.解析json可以放到子線程線程中,開Isolate去解析,這樣,當(dāng)返回數(shù)據(jù)特別大的時候也不會阻塞界面。

9.使用不變的組件的時候可以添加const,const組件不會進行build更新

10.由于flutter通過widget.runtimeType和key來判斷是否需要跟新組建,所以我們寫組件的時候盡量保持key不變,或者不寫key。對于一些需要頻繁改變,例如新增、刪除、排序的最好加上key。如果type一直,如果不寫key容易導(dǎo)致,element無法區(qū)分新舊widget,導(dǎo)致無法更新。

Flutter之Dart數(shù)據(jù)類型及數(shù)據(jù)之間的轉(zhuǎn)換

1、數(shù)值型-Number

2、布爾型-Boolean

3、字符串-String

4、列表-List

5、鍵值對-Map

1、int: 整數(shù),數(shù)值

2、double: 浮點型數(shù)值,帶有小數(shù)點

運算符:+,-,*,/,~/(取整),%;

字符串操作

運算符:+,*,==,[]

插值表達式:${expression}

常用屬性:length,isEmpty(是否為空)

Map 對象

flutter 小數(shù)向上向下取整

Flutter 的Dart語言,數(shù)字向上或者向下取整數(shù)。

例如:

6除以5想要獲取到不同的值

控制小數(shù)點精度

標題名稱:flutter取整,float取整和取小數(shù)
標題路徑:http://vcdvsql.cn/article44/dsigehe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃虛擬主機定制開發(fā)ChatGPT網(wǎng)站維護移動網(wǎng)站建設(shè)

廣告

聲明:本網(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)

綿陽服務(wù)器托管