欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

flutter小部件開發(fā),flutter 常用組件

Flutter開發(fā)-屏蔽Widget的多點觸控行為

在Flutter中我們在 Widget 實現(xiàn)一些手勢交互通常會使用 GestureDetector 裝飾器來實現(xiàn),但是默認情況下, widget 是支持多點觸控,但是在一些特定需求下,我們不需要多點觸控的操作,或者多點觸控反而給一些功能帶來麻煩,而且比較不方便的是,多點觸控無法通過操作 widget 或者 GestureDetector 來屏蔽掉。查閱了官方文檔發(fā)現(xiàn)的這個玩意: RawGestureDetector

在青羊等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站建設、成都網(wǎng)站設計 網(wǎng)站設計制作按需策劃,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,全網(wǎng)整合營銷推廣,成都外貿(mào)網(wǎng)站建設,青羊網(wǎng)站建設費用合理。

大概意思是:一個小部件,用于檢測由給定手勢工廠描述的手勢。對于常用手勢,請使用GestureRecognizer。 RawGestureDetector主要在開發(fā)自己的手勢識別器時很有用。

例如:

我們可以通過RawGestureDetector來自定義手勢。

有時,你可能需要禁用多點觸摸或在Flutter應用程序中點擊小部件。 例如,有一個列表,并且一次只能單擊其中一項。 您不希望用戶同時用三個手指點擊或觸摸并立即選擇三個項?;旧希乐褂脩舳啻吸c擊或多點觸摸。

我們先創(chuàng)建一個簡單的頁面,頁面加載一個 ListView.builder() ,

這個列表上的cell都支持多點觸控,效果圖:

【圖】

Flutter允許在 GestureRecognizer 基類的幫助下創(chuàng)建自定義手勢識別器小部件。 該類已經(jīng)有兩個抽象的實現(xiàn),可以實現(xiàn)多次輕擊和單次輕擊手勢。

首先創(chuàng)建一個自定義窗口小部件,以使其子窗口小部件只能具有單一觸摸手勢。

在 build() 方法中,我們將返回僅支持單點觸摸手勢的手勢檢測器小部件。 因此,我們?yōu)榇藙?chuàng)建另一個名為 _SingleTouchRecognizer 的類

現(xiàn)在我們回到我們的 SingleTouchRecognizerWidget 中,通過 RawGestureDetector 裝飾器來定義我們剛才創(chuàng)建的單擊手勢檢測器:

現(xiàn)在, build() 方法返回了一個 RawGestureDetector ,該 RawGestureDetector 處理 _SingleTouchRecognizer 類中的手勢。接下來,我們需要在識別器類中實現(xiàn)這些方法。我們首先覆蓋 GestureRecognizer 的 addAllowedPointer 方法。

在這里, startTrackingPointer 方法注冊了將由識別器處理的相關(guān)事件。 然后, resolve() 負責確保是否允許繼續(xù)進行觸摸事件。

如果我們傳入 GestureDisposition.rejected ,則當前的觸摸事件無法處理。 因此,此觸摸事件將被傳遞并允許其繼續(xù)。 但是,如果傳遞了 GestureDisposition.accepted ,則將解析觸摸事件,并且不會再調(diào)用其他事件。

通過handleEvent函數(shù)重置控制變量_p的值。

這樣就完成了_SingleTouchRecognizer類的實現(xiàn)。

現(xiàn)在,只需要將該 Widget 包裹在想要支持單點觸控的 widget 外層即可。

參考文獻:

disable-multi-touch-on-a-widget-in-flutter

api.flutter.dev

Flutter小部件之圖片(Image)和圖標(Icon)

在Flutter中,我們可以使用Image控件來顯示圖片,一般來講我們的圖片資源都來源于網(wǎng)絡或者本地圖片。

Flutter中的Image也是類似。

我們先來看看Image的構(gòu)造方法

下面我們來看看其常用的屬性

可以看到,其常用屬性跟前端中的css很像。

下面我們來簡單用一用Image控件

首先是必填參數(shù)image,它接收一個ImageProvider類型的值。ImageProvider是一個抽象類,他下面有下圖這些實現(xiàn)類,由下面這些實現(xiàn)類可以看出,image是可以從資源,內(nèi)存,網(wǎng)絡,和文件中獲取圖片。

我們先來試試加載網(wǎng)絡圖片

首先看看NetworkImage構(gòu)造方法,很簡單,傳個url就可以了

如下:

嗯,就是這么簡單。其他3種情況使用也是類似的,自行看源碼即可。

實際上,F(xiàn)lutter給我們提供了擴展方法,使用起來更加簡單,通常我們直接使用提供的擴展方法即可

如下

可以看到,他們的構(gòu)造方法基本類似。

所以我們也可以這樣寫,跟上面的效果是一致的。

大致分為一下幾步

1.創(chuàng)建一個文件夾,用于存放圖片,如圖,我創(chuàng)建了一個imgs的文件夾,放了一張圖片

2.在pubspec.yaml中聲明資源,注意聲明的時候路徑和前面的-是有間隔的,不然的話會報#/properties/flutter/properties/assets: type: wanted [array] got -imgs/code.png

類似的錯誤,聲明完成后點擊右上方的packages get

下面我們再來看看其他屬性。

width,height

寬高沒什么好說的,就是設置寬度和高度

配合color使用,用于設置顏色的混合模式。BlendMode是一個枚舉,他有很多值

詳細解析還是看官方文檔吧,值太多了,我們隨便用用

用于設置圖片的填充方式,當圖片本身小于設置的寬高或者比父控件的寬高小時,我們可以設置該屬性控制圖片的顯示。

其值的類型是BoxFit。是個枚舉

具體含義還是直接看文檔即可

設置圖片的對齊方式,接收一個Alignment類型的值,值如下,很好理解

為了方便看效果我們在外邊套了個Container,簡單的把它理解為一個容器布局就可以了,類似于html中的div或android中的Layout,我們給Container設置了寬高和背景顏色。

bottomLeft效果如下,其他的自行嘗試

相對于Image,ICON可以像web一樣使用字體圖標,并且可以使用矢量圖,無需擔心失真的問題,并且體積相對較小。

我們先來看看其構(gòu)造方法

很簡單,我們直接來用一用

默認情況下,pubspec.yaml中uses-material-design的值為true.我們默認就可以使用Material Design字體圖標

為什么Flutter開發(fā)APP性能最接近原生,前端程序員請關(guān)注

Flutter是谷歌公司推出的跨終端的開發(fā)框架,支持Android、iOS和WEB終端。1.0版在2018年12月5日發(fā)布,目前的最新版本是1.5,它采用的開發(fā)語言是Dart,Dart也是谷歌開發(fā)的計算機編程語言,語法類似C,是編譯型語言:

hello world例子,打印字符串“Hello World!”:

1、沒有橋接層

React Native、Weex等技術(shù)都是跨終端的框架,然而性能跟原生App存在很大差距。這是由于它們的工作原理決定的:

React Native、Weex等技術(shù)多了一個橋接層,所以界面渲染會慢一些,由于UI渲染非常頻繁,想要不卡頓,基本上比較難,性能和用戶體驗跟原生代碼有差距。而這恰恰是Flutter的優(yōu)勢所在:

Dart可以被編譯成不同平臺的本地代碼,讓Flutter不通過橋接層直接跟平臺通信,自然性能會快一些。

2、編譯執(zhí)行

JavaScript是解釋執(zhí)行的,Dart是編譯執(zhí)行的,性能誰好一目了然。

3、Flutter Engine虛擬機

Flutter是依靠Flutter Engine虛擬機在iOS和Android上運行的,F(xiàn)lutter Engine使用C/C++編寫,開發(fā)人員通過Flutter框架直接和API在內(nèi)部進行交互,所以具有輸入低延遲和UI渲染高幀速率的特點。除了這特點之外,F(xiàn)lutter還提供了自己的小部件,F(xiàn)lutter小部件是使用從React獲取靈感的現(xiàn)代框架構(gòu)建的。 中心思想是您使用小部件構(gòu)建UI。

窗口小部件根據(jù)其當前配置和狀態(tài)描述了它們的視圖。 當窗口小部件的狀態(tài)發(fā)生更改時,窗口小部件會重建其描述,框架將根據(jù)前面的描述進行區(qū)分,以確定底層呈現(xiàn)樹從一個狀態(tài)轉(zhuǎn)換到下一個狀態(tài)所需的最小更改。可以直接在OS平臺提供的畫布上進行描繪,也就是一些核心類庫直接放到虛擬機里面,調(diào)用起來更快。

從它的系統(tǒng)結(jié)構(gòu)可以看出,類似安卓的ART(Android Run Time)虛擬機,同樣采用AOT(Ahead of TIme)技術(shù),會在APP安裝時就編譯成機器語言,不再解釋執(zhí)行,從而優(yōu)化了APP運行的性能。

4、自帶渲染引擎

Flutter使用谷歌自己的Skia渲染引擎,而Android系統(tǒng)自帶Skia引擎,iOS平臺上Flutter也會把Skia引擎打包到APP中,從而實現(xiàn)了高效渲染。而React Native通過橋接層訪問原生UI,操作頻繁就容易出性能問題。

綜合所述,F(xiàn)lutter 是性能最接近原生代碼 的一種開發(fā)框架,未來也會是構(gòu)建谷歌Fuchsia應用的主要方式,前途不可限量,唯一的問題就是需要學習一門新的語言:Dart,而有Java或者C#語言基礎的程序員會比較容易學習。

使用Flutter + V8/JsCore開發(fā)小程序引擎(一)

眾所周知,小程序是由HTML標簽來開發(fā)原生組件,那么首先需要將HTML做解析,這里我們將HTML通過node腳本解析成JSON字符串,再用Dart來解析JSON,映射對應的標簽到flutter的組件。這里先簡單介紹實現(xiàn)的功能以及展示效果,后續(xù)再詳細介紹。

為了高效解析,直接用flutter的組件名在HTML文件上開發(fā)

直接使用flutter的組件

模仿微信小程序的Api,cc對應是微信小程序的wx

以上HTML中的例子

《使用Flutter + V8/JsCore開發(fā)小程序引擎(二)》

《使用Flutter + V8/JsCore開發(fā)小程序引擎(三)》

網(wǎng)站標題:flutter小部件開發(fā),flutter 常用組件
本文鏈接:http://aaarwkj.com/article28/dsshdjp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設、網(wǎng)站制作網(wǎng)站排名、網(wǎng)頁設計公司響應式網(wǎng)站

廣告

聲明:本網(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ǎng)站建設
av天堂中文一区二区三区 | 国产自产一区二区三区精品| 色噜噜噜av天堂九区| 日韩精品亚洲一区二区三区免费| 自偷自拍亚洲综合精品| 免费观看欧美日韩论理电影| 精品欧美黑人一区二区| 国产精品日本一区二区三区在线 | 欧洲精品亚洲精品日韩专区| 黄色片黄色片美女黄色片亚洲黄色片 | 日本a亚洲中文字幕永远| 日韩激情小视频在线观看| 日韩精品在线中文字幕| 午夜福利视频一区久久久| 久久精品免费激情视频| 日韩欧美人妻中文字幕| 亚洲日本日本午夜精品| 日本91大神在线观看| 日韩在线一区二区视频| 欧美亚洲清纯唯美另类| 视频播放一区二区三区毛片| 日韩亚洲欧美精品另类| 中文字幕日韩手机在线| 黄片视频免费在线观看播放| 一区二区三区都市激情| 在线午夜免费视频观看| 国产乱来视频在线观看| 欧美日韩一区二区三区久久精品| 午夜丁香婷婷爽少妇av| jvid视频在线观看免费| 中文字幕av日韩在线| 亚洲欧美中文字幕乱码| 日韩在线视频精品一区| 国产三级传媒在线观看| 日韩精品人妻中文字幕满员| 亚洲av乱码一区二区三| 日本黄色小网站在线播放| 一区二区三区四区在线视频观看| 人妻熟女一区二区aⅴ在线视频| 午夜视频在线观看91| 综合资源网日韩天天操|