成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

flutter旋轉(zhuǎn)展示的簡(jiǎn)單介紹

Flutter 滑動(dòng)、縮放控件

onInteractionEnd 交互結(jié)束

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

onInteractionStart 交互開始

onInteractionUpdate 滑動(dòng)時(shí)候一直會(huì)回調(diào)

focalPoint 是相對(duì)于屏幕左上角的偏移量。

localFocalPoint是相對(duì)于父容器區(qū)域左上角的偏移量。

scale縮放量。

horizontalScale水平縮放量。

verticalScale豎直縮放量。

rotation旋轉(zhuǎn)量。------ 這里說(shuō)明能監(jiān)聽到旋轉(zhuǎn)量

還可以通過(guò)transformationController進(jìn)行變換控制,有興趣的可以自己研究。

參考文章

Flutter Transform使用介紹

窗口小部件(Widget)可以在Paint之前應(yīng)用Transform進(jìn)行轉(zhuǎn)換,通過(guò)Transform可以對(duì)widget進(jìn)行平移、旋轉(zhuǎn)、縮放等矩陣變換。不像RotatedBox在layout前就對(duì)Widget進(jìn)行旋轉(zhuǎn)操作,Transform是在Widget繪制前進(jìn)行轉(zhuǎn)換,這意味著在計(jì)算Widget的顯示需要占用多少空間時(shí),不會(huì)去考慮Transform變換。

例子

在垂直方向移動(dòng)15個(gè)單位距離

例子

順時(shí)針旋轉(zhuǎn)45°

例子

放大1.5倍

Flutter(6):基礎(chǔ)組件之Image

Image是一個(gè)用于展示圖片的組件。支持 JPEG、PNG、GIF、Animated GIF、WebP、Animated WebP、BMP 和 WBMP 等格式。

Image.asset - 用于從資源目錄的顯示圖片,需要在 pubspec.yaml 文件中聲明。

Image.network - 用于從網(wǎng)絡(luò)上顯示圖片。

Image.file - 用于從文件里顯示圖片。

Image.memory - 用于從內(nèi)存里(Uint8List)顯示圖片。

alignment → AlignmentGeometry - 圖像邊界內(nèi)對(duì)齊圖像。

centerSlice → Rect - 九片圖像的中心切片。

color → Color - 該顏色與每個(gè)圖像像素混合colorBlendMode。

colorBlendMode → BlendMode - 用于 color 與此圖像結(jié)合使用。

fit → BoxFit - 圖像在布局中分配的空間。

gaplessPlayback → bool - 當(dāng)圖像提供者發(fā)生變化時(shí),是繼續(xù)顯示舊圖像(true)還是暫時(shí)不顯示(false)。

image → ImageProvider - 要顯示的圖像。

matchTextDirection → bool - 是否在圖像的方向上繪制圖像 TextDirection。

repeat → ImageRepeat - 未充分容器時(shí),是否重復(fù)圖片。

height → double - 圖像的高度。

width → double - 圖像的寬度。

加載資源圖片需要將圖片資源放入工程中,例如:新建images文件夾,將圖片放在該文件夾下,圖片適配則是使用ios的方式1X,2X,3X:

然后在pubspec.yaml中配置assets:

加載資源/網(wǎng)絡(luò)/本地文件圖片/內(nèi)存圖片:

占位圖加載圖片:

圓形圖片:1.裁剪實(shí)現(xiàn) 2.CircleAvatar實(shí)現(xiàn) 3.Container邊框?qū)崿F(xiàn)

圓角圖片:1.裁剪實(shí)現(xiàn) 2.Container邊框?qū)崿F(xiàn)

BoxFit.contain 全圖居中顯示但不充滿,顯示原比例

BoxFit.cover 圖片可能拉伸,也可能裁剪,但是充滿容器

BoxFit.fill 全圖顯示且填充滿,圖片可能會(huì)拉伸

BoxFit.fitHeight 圖片可能拉伸,可能裁剪,高度充滿

BoxFit.fitWidth 圖片可能拉伸,可能裁剪,寬度充滿

BoxFit.scaleDown 效果和contain差不多, 但是只能縮小圖片,不能放大圖片

下一節(jié)學(xué)習(xí)基礎(chǔ)組件之Text

Flutter動(dòng)畫 --- 平移/旋轉(zhuǎn)/縮放/漸變

在Flutter中Widget動(dòng)畫的核心類有下面這些:

Animation:動(dòng)畫庫(kù)中的一個(gè)核心類,它生成指導(dǎo)動(dòng)畫的值;

CurvedAnimation:將動(dòng)畫過(guò)程抽象為一個(gè)非線性曲線;

AnimationController:用來(lái)管理管理動(dòng)畫,常用的方法有forward():?jiǎn)?dòng)動(dòng)畫;reverse({double from}:倒放動(dòng)畫;reset():重置動(dòng)畫,將其設(shè)置到動(dòng)畫的開始位置;stop({ bool canceled = true }):停止動(dòng)畫。

Tween:AnimationController對(duì)象的范圍從0.0到1.0。如果您需要不同的范圍或不同的數(shù)據(jù)類型,則可以使用Tween來(lái)配置動(dòng)畫以生成不同的范圍或數(shù)據(jù)類型的值。

Flutter開發(fā)--如何布局?

相對(duì)于iOS開發(fā),F(xiàn)lutter的布局更具有靈活性,每個(gè)頁(yè)面設(shè)計(jì)都不一樣,相同頁(yè)面可選擇的布局方式也不一樣,如果單純的說(shuō)應(yīng)該如何去布局,我覺得不現(xiàn)實(shí),大家可以參考下 Flutter官方的布局教程 。接下來(lái),筆者,通過(guò)項(xiàng)目中的一個(gè)頁(yè)面,來(lái)一步一步的拆解布局的流程。整個(gè)過(guò)程,基本上按照拆解、組件封裝、具體布局這三步來(lái)的。

根據(jù)設(shè)計(jì)圖,可以看出整體可以分成兩部分,上面一部分是系統(tǒng)介紹模塊,下面一部分是真正的登錄內(nèi)容,因?yàn)樯婕暗蒋B加,因此考慮用Stack;

系統(tǒng)介紹模塊部分:整體也是涉及到疊加,考慮用Stack,分為四部分。最底部漸變色背景用一個(gè)contanier,無(wú)須指定位置,全視圖擴(kuò)展;載放logo圖標(biāo)在上一層,用Image。最后兩個(gè)Text同級(jí)放在最上層。Image,Text各用Positioned包裹去指定位置。

登錄內(nèi)容模塊是最外層是一個(gè)Contanier容器,去控制背景色和圓角。然后是一個(gè)Column元素,逐行排列。

第一行為Image,

第二行為Text,

第三行可以看成一個(gè)小Column,分兩塊進(jìn)行布局

第四行可以看成一個(gè)小Column,分兩塊進(jìn)行布局

第五行可以看作一個(gè)TextButton,

第六行可以看作一個(gè)Row,分三塊進(jìn)行布局

通過(guò)上面這樣一步一步的分析后,基本上對(duì)大致的布局有了一個(gè)了解,最外層的控件大致選對(duì)(只要能實(shí)現(xiàn)的話,就是復(fù)雜度以及效率的問(wèn)題),然后一步一步的拆解每一行的元素,如果有重復(fù)的或者覺得可以封裝出來(lái)的部分,則進(jìn)行下一步。

每一行的拆解,大致也是按照這個(gè)思路來(lái)進(jìn)行,因此筆者在這里就不做講解了。

在做到第三第四行的時(shí)候,發(fā)現(xiàn)這兩個(gè)很相似,而且設(shè)計(jì)到一些交互邏輯,筆者就想對(duì)第三第四行的這種展示進(jìn)行封裝,覺得今后的布局可能會(huì)用到,因此在這一步,可以先把這一塊兒抽離出一個(gè)控件。利用TextField來(lái)實(shí)現(xiàn)這種輸入操作,具體的實(shí)現(xiàn)筆者不再詳細(xì)的描述了。

經(jīng)過(guò)這一步,整體的規(guī)劃設(shè)計(jì)圖已經(jīng)有了,各個(gè)組件也都有了,接下來(lái)的工作就是組裝了。

具體布局設(shè)計(jì)到一些細(xì)節(jié)的地方,例如整體Column的居中對(duì)齊(crossAxisAlignment)、間隔(Padding或Container包裹,筆者更喜歡用SizedBox占位)、居左居右居中(Align)、點(diǎn)擊事件(GestureDetector)以及圓角(BorderRadius)等一些特殊情況。

像第六行row是放在底部的,就可以在第六行前面增加一個(gè)Spacer()去填充空白區(qū)域。

對(duì)文字顏色大小等,可以用TextStyle直接設(shè)置。

對(duì)于輸入框的刪除按鈕,可以用Offstage這種Flutter特有的控制顯示隱藏的控件。

flutter_inappbrowser和h5交互

需求,app中使用webview和h5交互,根據(jù)h5發(fā)過(guò)來(lái)的消息,在屏幕上展示flutter組件,并且可以發(fā)送消息給h5。

首先使用的組件是flutter_WebView_plugin,這個(gè)組件不能嵌套flutter組件,所以放棄這個(gè)組件。

flutter_inappbrowser 可以實(shí)現(xiàn)組合布局, 所以選用了此庫(kù), GitHub鏈接

[

分享文章:flutter旋轉(zhuǎn)展示的簡(jiǎn)單介紹
文章位置:http://jinyejixie.com/article44/dsdgcee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、手機(jī)網(wǎng)站建設(shè)ChatGPT、標(biāo)簽優(yōu)化、網(wǎng)站建設(shè)網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
仙居县| 大城县| 绥中县| 连山| 应用必备| 襄城县| 鲁甸县| 七台河市| 丹阳市| 金平| 鲁甸县| 永新县| 临江市| 得荣县| 赤壁市| 新平| 临桂县| 甘谷县| 霍邱县| 忻州市| 龙里县| 灵寿县| 遂川县| 泸水县| 库伦旗| 平原县| 嘉鱼县| 海口市| 潞西市| 奎屯市| 西吉县| 五家渠市| 文安县| 盐山县| 白水县| 左云县| 河东区| 南木林县| 贵德县| 曲阜市| 南乐县|