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

flutter1.2,flutter122

Flutter 94: 初識 MediaQuery

當(dāng)我們同時(shí)為手機(jī)和平板適配編寫 app 針對不同屏幕尺寸進(jìn)行 UI 布局或當(dāng)用戶偏好設(shè)置較大字號或是想要最大限度等減少動(dòng)畫等;此時(shí)就需要 MediaQuery 來幫我們獲取所用設(shè)備的信息以及用戶設(shè)置的偏好信息;

平頂山網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。

MediaQuery 一直存在于 WidgetsApp 和 MaterialApp 中, MediaQuery 繼承自 InheritedWidget 是一個(gè)單獨(dú)的 Widget ,但一般通過 MediaQuery.of(context) 來獲取相關(guān)信息;

當(dāng)相關(guān)信息發(fā)生變化,例如屏幕旋轉(zhuǎn)等時(shí),屏幕中 Widget 會(huì)重新構(gòu)建,以保持最新狀態(tài);我們可以通過 MediaQuery 構(gòu)造函數(shù)和提供的靜態(tài)方法手動(dòng)設(shè)置對應(yīng)的相關(guān)信息;

MediaQueryData 包含關(guān)于媒介的相關(guān)信息;一般通過 MediaQuery.of(context) 獲??;

size 為媒介的尺寸大小,以邏輯像素為單位;

devicePixelRatio 為像素密度;與設(shè)備物理像素有關(guān),與橫豎屏等無關(guān);

orientation 為橫豎屏, Orientation.landscape 為橫屏, Orientation.portrait 為豎屏;

textScaleFactor 為

每個(gè)邏輯像素的字體像素?cái)?shù),小菜理解為字體的像素比;注意,小菜設(shè)置了默認(rèn)字體像素密度為標(biāo)準(zhǔn)的 1.2 倍之后調(diào)整設(shè)備系統(tǒng)字號,其 1.2 倍依舊是以標(biāo)準(zhǔn)字號為基礎(chǔ)擴(kuò)大 1.2 倍;

platformBrightness 為當(dāng)前設(shè)備的亮度模式;注意調(diào)整屏幕亮度并不會(huì)改變該模式,與當(dāng)前系統(tǒng)支持的黑暗模式和明亮模式相關(guān);

alwaysUse24HourFormat 為當(dāng)前設(shè)備是否為 24 小時(shí)制;

accessibleNavigation 為是否使用 TalkBack 或 VoiceOver 之類的輔助功能與應(yīng)用程序進(jìn)行交互,用以輔助視力障礙人群;

invertColors 為是否使用顏色反轉(zhuǎn),主要用于 iOS 設(shè)備;

highContrast 為用戶是否要求前景與背景之間的對比度高,主要用于 iOS 設(shè)備;

disableAnimations 為平臺(tái)是否要求禁用或減少動(dòng)畫;

boldText 為平臺(tái)是否要求使用粗體;

padding 為屏幕內(nèi)邊距,一般是劉海兒屏或異形屏中被系統(tǒng)遮擋部分邊距;

viewInsets 為鍵盤彈出時(shí)等遮擋屏幕邊距,其中 viewInsets.bottom 為鍵盤高度;

systemGestureInsets 為手勢邊距,如 Android Q 之后添加的向左滑動(dòng)關(guān)閉頁面等;

viewPadding 小菜理解為視圖內(nèi)邊距,為屏幕被劉海兒屏或異形屏中被系統(tǒng)遮擋部分,從 MediaQuery 邊界的邊緣計(jì)算;此值是保持不變;例如,屏幕底部的軟件鍵盤可能會(huì)覆蓋并占用需要底部填充的相同區(qū)域,因此不會(huì)影響此值;

physicalDepth 為設(shè)備物理層級,小菜暫時(shí)還未想到對應(yīng)的應(yīng)用場景;

小菜在嘗試獲取其他子 Widget Size 時(shí),有兩點(diǎn)需要注意,首先要設(shè)置一個(gè)全局的 GlobalKey 來獲取當(dāng)前位置, key 需要為唯一的;第二通過 GlobalKey().currentContext 獲取 BuildContext 上下文環(huán)境,從而獲取對應(yīng)尺寸;

MediaQuery 案例嘗試

小菜對于部分 MediaQueryData 的應(yīng)用和理解還不夠深入;如有錯(cuò)誤請多多指導(dǎo)!

Flutter設(shè)置APP版本與構(gòu)建版本

當(dāng)一個(gè)純Flutter APP開發(fā)完成,我們要打包發(fā)布到App Store和各大安卓市場,這時(shí)候我們需要設(shè)置APP的版本號。

如果我們在使用原生iOS或者Android開發(fā)的時(shí),我們會(huì)在info.plist中設(shè)置 version 和 build 或是在build.gradle中設(shè)置 versionName 和 versionCode ,他們分別表示APP的版本和構(gòu)建版本。

但是我們在使用Flutter管理APP版本時(shí),打開 pubspec.yaml 只看到一個(gè) version 字段。這時(shí)候我們應(yīng)該怎么設(shè)置APP的 version 和 build 呢?

我們在pub上隨便找一個(gè)Flutter的組件,例如官方的 camera ,我們可以看到截止目前為止最新的版本為: camera: ^0.5.2+1 ??吹竭@里,我想大家都明白了,Dart采用的是加號式的版本描述方式, + 前面是版本號, + 后面是當(dāng)前版本的build號。所以我們設(shè)置APP的版本號和build次數(shù),在這里設(shè)置即可,例如: version: 1.2.0+1 。

當(dāng)我們新建一個(gè)Flutter工程的時(shí)候,我們分別使用Xcode和Android Studio打開iOS和Android的工程可以看到,iOS中的 version 和 build 的值分別為 FLUTTER_BUILD_NAME 和 FLUTTER_BUILD_NUMBER :

同樣我們打開Android工程可以看到有如下定義:

事實(shí)上,F(xiàn)lutter在編譯的時(shí)候會(huì)生成 ios/Flutter/Generated.xcconfig 和 android/local.properties 文件。這兩個(gè)文件由Flutter編譯自動(dòng)生成,不可更改。記錄了包含SDK路徑或者文件路徑,版本信息,環(huán)境配置(release/debug)等信息。原生工程獲取版本信息的變量就定義在這兩個(gè)文件里面。

為什么說移動(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對于iOS和Android設(shè)備,提供了兩套視覺庫,可以針對不同的平臺(tái)有不同的展示效果。

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

在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è)層級階段的庫。例如實(shí)現(xiàn)一個(gè)游戲功能,上面一些游戲控件可以用上層視覺庫,底層游戲可以直接基于Flutter的底層庫進(jìn)行開發(fā),而不需要調(diào)用原生應(yīng)用的底層庫。Flutter的底層庫是基于Open GL實(shí)現(xiàn)的,所以O(shè)pen GL可以做的Flutter都可以。

看我如何使用Flutter開發(fā)一款盯盤小工具

前言

最近街邊討論買基金大佬們又多起來了,一些技術(shù)交流群也時(shí)不時(shí)看到某某某大佬在討論股票,看來最近行情很好啊,雖然我不懂交易,但我總覺得可以做些什么來彌補(bǔ)我的不足,于是有了接下來要跟大家分享的“盯盤小工具”。

準(zhǔn)備開干

那么接下來我的目標(biāo)是開發(fā)一款PC端的桌面盯盤小工具,特點(diǎn)首先就是小、方便整天盯著電腦屏幕的白領(lǐng)們打開瞧瞧,省去費(fèi)事各種操作;然后就是無需關(guān)注太多費(fèi)腦筋的指標(biāo),所以能夠顯示名稱和漲跌幅即可。有的上面的需求后,那就可以開始搬磚了,但是對于我這種只懂點(diǎn)Android皮毛又沒做過桌面應(yīng)用的人來說,簡直是比登天還難,那該咋辦?在夜深人靜時(shí),我恍然想起了Flutter,沒錯(cuò)先來一張圖:

還記得當(dāng)時(shí)看Flutter的時(shí)候還是1.2版本,如今回過頭來看,已經(jīng)不是曾經(jīng)那個(gè)Flutter了。

搬磚

為了實(shí)現(xiàn)這個(gè)小小的業(yè)余需求并且又能學(xué)習(xí)Flutter,于是我白天下班回來又開始不同場景不同程序語言的搬磚,重新安裝了Flutter的最新開發(fā)環(huán)境,重新學(xué)習(xí)Flutter開發(fā)-萬物皆widget。

功夫不負(fù)有心人

效果圖展示

當(dāng)前為最初版本,很多功能還不夠完善,后續(xù)目標(biāo)就是完善及優(yōu)化,

GitHub項(xiàng)目地址:

致謝

為了實(shí)現(xiàn)這個(gè)小小的業(yè)余需求并且又能學(xué)習(xí)Flutter,我也參考了很多Flutter大佬的開源項(xiàng)目,在此感謝所有優(yōu)秀的開源項(xiàng)目 _ 。

文章名稱:flutter1.2,flutter122
URL標(biāo)題:http://aaarwkj.com/article12/dsieidc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、網(wǎng)站營銷、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、營銷型網(wǎng)站建設(shè)網(wǎng)站建設(shè)

廣告

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

搜索引擎優(yōu)化
久久精品91久久久| 韩国av高清在线观看| 亚洲国产第一av导航| 日本免费一区二区三区的电影啊| 99在线精品热视频| av剧情免费在线观看| 91精品产综合久久香蕉| 偷怕自拍在线免费观看| 少妇一夜一次一区二区| 亚洲成人高清在线视频| 国产精品国产三级区| 日韩中文字幕在线有码| 国产高清视频在线观看流白浆| av免费在线不卡观看| 夫妻性生活免费的视频| 风韵丰满熟妇啪啪老熟女| 午夜影院在线免费观看三区| 中文字幕乱码人妻一区| 五月婷婷丁香视频在线| 插入内射视频在线观看| 日本高清不卡免费在线观看视频一二三区 | 中文字幕欧美精品日韩人妻| 精品欧美自拍偷拍三区| 国产精品综合日韩精| 中文欧美一区二区精品| 国产传媒视频网站在线观看| 国产女人和拘做受视频| 国产精品三级玖玖玖电影| 另类激情综合在线观看| 日韩成年人高清精品不卡一区二区 | 国产日韩亚洲欧美色片| 天天操夜夜操夜夜操| 亚洲欧美极品一区色婷婷| 大香蕉一区二区亚洲欧美| 成人精品淫片一级免费| 中文字幕中出亚洲精品| 亚洲天堂免费观看av| 日韩黄色成人在线观看| 亚洲中文字幕婷婷在线| 日韩成年人高清精品不卡一区二区| 精品综合亚洲中文字幕|