真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

flutter按鈕抖動(dòng),flutter滾動(dòng)條

Flutter性能優(yōu)化

1.圓角對(duì)性能的影響

滑縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

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

2.減少重繪

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

3.滾動(dòng)步長(zhǎng)插值器優(yōu)化(了解)

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

4.開啟SurfaceView

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

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

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

7.盡量使用statelessWidget代替statefulWidget,因?yàn)閟tatefulWidget的銷毀重建會(huì)引起子widget的銷毀與重建。

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

9.使用不變的組件的時(shí)候可以添加const,const組件不會(huì)進(jìn)行build更新

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

什么叫抖晃率

Flutter(抖動(dòng))、Wow(晃動(dòng))、Drift(漂移)、Scrape Flutter(刮顫)是以移動(dòng)介質(zhì)為記錄材料做模擬錄制和回放的系統(tǒng)所需要面對(duì)的幾種失真。這些失真是在錄制、復(fù)制、回放過(guò)程中,由于記錄介質(zhì)的不規(guī)則的運(yùn)動(dòng)而導(dǎo)致的令人不快的頻率調(diào)制所引入信號(hào)中的。抖晃率用于定量描述這種由于介質(zhì)的運(yùn)動(dòng)速度不穩(wěn)定所造成的頻率晃動(dòng)對(duì)人耳的主觀影響。比如回放一個(gè)精準(zhǔn)3150Hz的正弦信號(hào),在理想的無(wú)抖晃的情況下,播放出來(lái)的信號(hào)就是3150Hz,然而在實(shí)際有抖晃的情況下,播放出來(lái)的信號(hào)的瞬時(shí)頻率將圍繞某個(gè)均值(不一定正好等于3150Hz)不斷變動(dòng),就是說(shuō)相對(duì)于那個(gè)均值有往復(fù)變化的頻偏。

Drift(漂移)指的是信號(hào)中的頻偏低于大約0.5Hz的頻率調(diào)制。它給人的感覺是平均音調(diào)的緩慢變化。

Wow(晃動(dòng))指的是信號(hào)中的頻偏范圍為大約0.5Hz~6Hz的頻率調(diào)制。它給人的感覺是音調(diào)的波動(dòng)。

Flutter(抖動(dòng))指的是信號(hào)中的頻偏范圍為大約6Hz~100Hz的頻率調(diào)制。它給人的感覺是聲音品質(zhì)的粗糙化。

Scrape Flutter(刮顫)指的是信號(hào)中的頻偏高于大約100Hz的頻率調(diào)制。它由磁帶的粘連-滑動(dòng)(粘滯)運(yùn)動(dòng)造成。它給人的感覺是聲音中有噪音,而這種噪音在沒有信號(hào)時(shí)是不存在的。這種噪音也稱為摩擦噪音或粘滯噪音。

目前有多種抖晃率測(cè)試標(biāo)準(zhǔn),例如:CCIR,DIN, NAB, JIS等,這里介紹的是基于AES(Audio Engineering Society)的AES6-2008(r2012)標(biāo)準(zhǔn)(就是2012年的最新修訂版),它與IEC 60386、IEEE Std-193、CCIR 409-2和DIN 45507標(biāo)準(zhǔn)兼容。標(biāo)準(zhǔn)測(cè)試信號(hào)的頻率定為3150Hz。當(dāng)然用3000Hz的測(cè)試頻率或其他的頻率,這里介紹的方法也適用。

《摘自Multi-Instrument軟件說(shuō)明書》

Flutter基礎(chǔ)Widget之按鈕(RaisedButton、FlatButton、OutlineButton,IconButton)

Flutter中給我們預(yù)先定義好了一些按鈕控件給我們用,常用的按鈕如下

我們先來(lái)看看MaterialButton中的屬性,可以看到能設(shè)置的屬性還是很多的。

下面我們來(lái)看看常用屬性

而在Android中如果我們要修改按鈕樣式的話,需要通過(guò)selector和Shape等方式進(jìn)行修改,相比較Flutter來(lái)說(shuō)是要麻煩不少的

RaisedButton的構(gòu)造方法如下,由于繼承自MaterialButton,所以MaterialButton中的大多數(shù)屬性這邊都能用,且效果一致,這里就不在贅述了

下面我們來(lái)看一下屬性

接收一個(gè)方法,點(diǎn)擊按鈕時(shí)回調(diào)該方法。如果傳null,則表示按鈕禁用

如下圖所示

按鈕文本控件,一般都是傳一個(gè)Text Widget

按鈕顏色

按鈕的文本顏色

點(diǎn)擊按鈕時(shí)水波紋顏色

高亮顏色,點(diǎn)擊(長(zhǎng)按)按鈕后的顏色

陰影范圍,一般不會(huì)設(shè)置太大

內(nèi)邊距,使用

或者

shape用來(lái)設(shè)置按鈕的形狀,其接收值是ShapeBorder類型,ShapeBorder是一個(gè)抽象類,我們來(lái)看看有哪些實(shí)現(xiàn)類

可以看到,實(shí)現(xiàn)類還是很多的,我們主要來(lái)看看常用的即可。

borderRadius 接收一個(gè)BorderRadius類型的值,常用方法如下

我們可以把borderRadius分為上下左右四個(gè)方向,下面的方法都是對(duì)這四個(gè)方向進(jìn)行設(shè)置,

帶斜角的長(zhǎng)方形邊框

圓形邊框

圓角矩形

兩端是半圓的邊框

FlatButton跟RaisedButton用法基本一致,下面我們就直接用一下

注意,OutlineButton是一個(gè)有默認(rèn)邊線且背景透明的按鈕,也就是說(shuō)我們?cè)O(shè)置其邊線和顏色是無(wú)效的,其他屬性跟MaterialButton中屬性基本一致

下面我們直接來(lái)使用

效果如下:

IconButton是直接繼承自StatelessWidget的,默認(rèn)沒有背景

我們來(lái)看一下他的構(gòu)造方法

可以看到,icon是必填參數(shù)

icon接收一個(gè)Widget,但是一般我們都是傳入一個(gè)Icon Widget

其他屬性跟MaterialButton中的屬性用法基本一致

我們來(lái)用一下

效果如下:

我們也可以傳一個(gè)Text或其他Widget,這個(gè)大家自行嘗試吧

如果我們需要設(shè)置按鈕的最小寬度以及高度,button屬性中并沒有提供對(duì)應(yīng)的設(shè)置方法

使用如下:

Flutter中Button內(nèi)容大概就是這些

【Flutter】按鈕與文本(三)

此控件比較簡(jiǎn)單,按鈕的功能可劃分為UI樣式與事件回調(diào)

這里將幾種不同的按鈕一起運(yùn)行,做下對(duì)比動(dòng)圖如下:

這里對(duì)五種按鈕進(jìn)行column居中排列如下

Text用于顯示簡(jiǎn)單樣式文本,它包含一些控制文本顯示樣式的一些屬性。

TextStyle用于指定文本顯示的樣式如顏色、字體、粗細(xì)、背景等。

TextStyle更多屬性設(shè)置如下:

如果我們需要對(duì)一個(gè)Text內(nèi)容的不同部分按照不同的樣式顯示,即富文本,這時(shí)就可以使用TextSpan,它代表文本的一個(gè)“片段”。

如上述,我們當(dāng)然也可以在上述鏈接上添加手勢(shì)事件,后續(xù)會(huì)提到。

在widget樹中,文本的樣式默認(rèn)是可以被繼承的,因此,如果在widget樹的某一個(gè)節(jié)點(diǎn)處設(shè)置一個(gè)默認(rèn)的文本樣式,那么該節(jié)點(diǎn)的子樹中所有文本都會(huì)默認(rèn)使用這個(gè)樣式,而DefaultTextStyle正是用于設(shè)置默認(rèn)文本樣式的。

舉例如下:


當(dāng)前文章:flutter按鈕抖動(dòng),flutter滾動(dòng)條
網(wǎng)頁(yè)URL:http://weahome.cn/article/dsscpho.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部