老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

移動(dòng)flutter,移動(dòng)流量卡全國無限流量19元

Flutter移動(dòng)應(yīng)用:視圖(PageView,GridView)

主要屬性

成都創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元華容做網(wǎng)站,已為上家服務(wù),為華容各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

//創(chuàng)建一個(gè)帶 title 的 item

//通過傳入 length 多少個(gè)來創(chuàng)建多少個(gè) item

Flutter 之 交互

手勢操作在 Flutter 中分為兩類:

第一類是原始的指針事件(Pointer Event),即原生開發(fā)中常見的觸摸事件,表示屏幕上觸摸(或鼠標(biāo)、手寫筆)行為觸發(fā)的位移行為;

第二類則是手勢識(shí)別(Gesture Detector),表示多個(gè)原始指針事件的組合操作,如點(diǎn)擊、雙擊、長按等,是指針事件的語義化封裝。

指針事件表示用戶交互的原始觸摸數(shù)據(jù),如手指接觸屏幕 PointerDownEvent、手指在屏幕上移動(dòng) PointerMoveEvent、手指抬起 PointerUpEvent,以及觸摸取消 PointerCancelEvent。在手指接觸屏幕,觸摸事件發(fā)起時(shí),F(xiàn)lutter 會(huì)確定手指與屏幕發(fā)生接觸的位置上究竟有哪些組件,并將觸摸事件交給最內(nèi)層的組件去響應(yīng)。事件會(huì)從這個(gè)最內(nèi)層的組件開始,沿著組件樹向根節(jié)點(diǎn)向上冒泡分發(fā)。通過 hitTestBehavior 去調(diào)整組件在命中測試期內(nèi)應(yīng)該如何表現(xiàn),比如把觸摸事件交給子組件,或者交給其視圖層級(jí)之下的組件去響應(yīng)。關(guān)于組件層面的原始指針事件的監(jiān)聽,F(xiàn)lutter 提供了 Listener Widget,可以監(jiān)聽其子 Widget 的原始指針事件。

Listener(

child: Container(

color: Colors.black,

width: 300,

height: 300,

),

onPointerDown: (event) = print("down $event"),// 手勢按下回調(diào)

onPointerMove:? (event) = print("move $event"),// 手勢移動(dòng)回調(diào)

onPointerUp:? (event) = print("up $event"),// 手勢抬起回調(diào)

);

Gesture 是手勢語義的抽象,而如果我們想從組件層監(jiān)聽手勢,則需要使用 GestureDetector 。GestureDetector 是一個(gè)處理各種高級(jí)用戶觸摸行為的 Widget,與 Listener 一樣,也是一個(gè)功能性組件。

GestureDetector(// 手勢識(shí)別

? ? child: Container(color: Colors.red,width: 50,height: 50),// 紅色子視圖

? ? onTap: ()=print("Tap"),// 點(diǎn)擊回調(diào)

? ? onDoubleTap: ()=print("Double Tap"),// 雙擊回調(diào)

? ? onLongPress: ()=print("Long Press"),// 長按回調(diào)

? ? onPanUpdate: (e) {// 拖動(dòng)回調(diào)

? ? ? setState(() {

? ? ? ? // 更新位置

? ? ? ? _left += e.delta.dx;

? ? ? ? _top += e.delta.dy;

? ? ? });

? ? },

? ),

[img]

為什么說移動(dòng)端的未來是Flutter?

Flutter是Google開發(fā)的新一代跨平臺(tái)方案,F(xiàn)lutter可以實(shí)現(xiàn)寫一份代碼同時(shí)運(yùn)行在iOS和Android設(shè)備上,并且提供很好的性能體驗(yàn)。Flutter使用Dart作為開發(fā)語言,這是一門簡潔、強(qiáng)類型的編程語言。Flutter對(duì)于iOS和Android設(shè)備,提供了兩套視覺庫,可以針對(duì)不同的平臺(tái)有不同的展示效果。

Flutter原本是為了解決Web開發(fā)中的一些問題,而開發(fā)的一套精簡版Web框架,擁有獨(dú)立的渲染引擎和開發(fā)語言,但后來逐漸演變?yōu)橐苿?dòng)端開發(fā)框架。正是由于Dart當(dāng)初的定位是為了替代JS成為Web框架,所以Dart的語法更接近于JS語法。例如定義對(duì)象構(gòu)建方法,以及實(shí)例化對(duì)象的方式等。

在Google剛推出Flutter時(shí),其發(fā)展很緩慢,終于在18年發(fā)布第一個(gè)Bate版之后迎來了爆發(fā)性增長,發(fā)布第一個(gè)Release版時(shí)增長速度更快。可以從Github上Star數(shù)據(jù)看出來這個(gè)增長的過程。在19年最新的Flutter 1.2版本中,已經(jīng)開放Web支持的Beta版。

Flutter不僅僅提供了一套視覺庫,在Flutter整體框架中包含各個(gè)層級(jí)階段的庫。例如實(shí)現(xiàn)一個(gè)游戲功能,上面一些游戲控件可以用上層視覺庫,底層游戲可以直接基于Flutter的底層庫進(jìn)行開發(fā),而不需要調(diào)用原生應(yīng)用的底層庫。Flutter的底層庫是基于Open GL實(shí)現(xiàn)的,所以O(shè)pen GL可以做的Flutter都可以。

Flutter 之 文件操作(二十九)

Dart的 IO 庫包含了文件讀寫的相關(guān)類,它屬于 Dart 語法標(biāo)準(zhǔn)的一部分,所以通過 Dart IO 庫,無論是 Dart VM 下的腳本還是 Flutter,都是通過 Dart IO 庫來操作文件的,不過和 Dart VM 相比,F(xiàn)lutter 有一個(gè)重要差異是文件系統(tǒng)路徑不同,這是因?yàn)镈art VM 是運(yùn)行在 PC 或服務(wù)器操作系統(tǒng)下,而 Flutter 是運(yùn)行在移動(dòng)操作系統(tǒng)中,他們的文件系統(tǒng)會(huì)有一些差異。

Android 和 iOS 的應(yīng)用存儲(chǔ)目錄不同, PathProvider 插件提供了一種平臺(tái)透明的方式來訪問設(shè)備文件系統(tǒng)上的常用位置。該類當(dāng)前支持訪問兩個(gè)文件系統(tǒng)位置:

File代表一個(gè)整體的文件,他有三個(gè)構(gòu)造函數(shù),分別是:

文件讀取本身有兩種形式,一種是文本,一種是二進(jìn)制。

2.2.1 讀取文本內(nèi)容

如果是文本文件,F(xiàn)ile提供了readAsString、readAsLines、readAsStringSync、readAsLinesSync方法,讀取文本內(nèi)容

readAsString 一次性讀取所有文本

readAsLines 一行行的讀取文本

結(jié)果返回的是一個(gè)List,list中表示文件每行的內(nèi)容

readAsStringSync、readAsLinesSync同步讀取文本

2.2.2 讀取二進(jìn)制內(nèi)容

如果文件是二進(jìn)制,那么可以使用readAsBytes或者同步的方法readAsBytesSync:

dart中表示二進(jìn)制有一個(gè)專門的類型叫做Uint8List,他實(shí)際上表示的是一個(gè)int的List。

上面提到的讀取方式,都是一次性讀取整個(gè)文件,缺點(diǎn)就是如果文件太大的話,可能造成內(nèi)存空間的壓力。

所以File為我們提供了另外一種讀取文件的方法,流的形式來讀取文件.

示例

dart提供了open和openSync兩個(gè)方法來進(jìn)行隨機(jī)文件讀寫:

寫入和文件讀取一樣,可以一次性寫入或者獲得一個(gè)寫入句柄,然后再寫入。

一次性寫入的方法有四種,分別對(duì)應(yīng)字符串和二進(jìn)制

句柄形式可以調(diào)用openWrite方法,返回一個(gè)IOSink對(duì)象,然后通過這個(gè)對(duì)象進(jìn)行寫入:

默認(rèn)情況下寫入是會(huì)覆蓋整個(gè)文件的,但是可以通過下面的方式來更改寫入模式:

雖然dart中所有的異常都是運(yùn)行時(shí)異常,但是和java一樣,要想手動(dòng)處理文件讀寫中的異常,則可以使用try,catch:

我們還是以計(jì)數(shù)器為例,實(shí)現(xiàn)在應(yīng)用退出重啟后可以恢復(fù)點(diǎn)擊次數(shù)。 這里,我們使用文件來保存數(shù)據(jù):

1.引入PathProvider插件;在pubspec.yaml文件中添加如下聲明:

執(zhí)行 flutter pub get

2.實(shí)現(xiàn)如下

參考:


文章題目:移動(dòng)flutter,移動(dòng)流量卡全國無限流量19元
轉(zhuǎn)載注明:http://www.xueling.net.cn/article/dsopgip.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 国产精品边做奶水狂喷 | 69日本xxxxxxxxx49 国产日本欧洲亚洲 | 亚洲国产97色在线张津瑜 | 日本国产一区二区三区 | 99爱在线视频这里只有精品 | 男女无遮挡免费视频 | 日本国产免费 | videos性欧美另类高清 | 亚洲性猛交 | 97一区二区三区 | 欧美一级特黄aaaaaaa色戒 | 国产专区中文字幕 | 国产免费拔擦拔擦8x在线牛 | 日韩欧美中文字幕在线观看 | 两个男人吮她的花蒂和奶水视频 | 在线天堂一区 | 亚洲人成网线在线播放va | 日韩欧美国产一区二区 | 国产V精品V欧美V日韩V | 日韩一二三区在线观看 | 中文字幕精品乱码中文字乱码 | 女人高潮流白浆视频 | 好想被狂躁A片免费久99 | 日韩丰满少妇无码内射 | 亚洲第一福利网站在线 | 成人免费无码大片A毛片抽搐色欲 | 国产精品视频免费观看www | 国产成人亚洲中文字幕视频 | 99精品久久精品一区二区 | 操人视频91 | 国产亚洲精品av | 一区二区三区日韩精品 | 欧美在线色 | 初尝办公室人妻少妇 | 美女床上运动 | 久久免费毛片 | 狠狠操视频网 | 一区二区黄色视频在线观看 | 亚洲乱码中文字幕综合区 | 一级又爽又黄的免费毛片视频 | 18禁超污无遮挡无码免费动态图 |