bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

flutter1.2,flutter122

Flutter 94: 初識(shí) MediaQuery

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

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

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

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

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

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

devicePixelRatio 為像素密度;與設(shè)備物理像素有關(guān),與橫豎屏等無(wú)關(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)字號(hào),其 1.2 倍依舊是以標(biāo)準(zhǔn)字號(hào)為基礎(chǔ)擴(kuò)大 1.2 倍;

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

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

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

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

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

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

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

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

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

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

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

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

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

MediaQuery 案例嘗試

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

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

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

如果我們?cè)谑褂迷鷌OS或者Android開(kāi)發(fā)的時(shí),我們會(huì)在info.plist中設(shè)置 version 和 build 或是在build.gradle中設(shè)置 versionName 和 versionCode ,他們分別表示APP的版本和構(gòu)建版本。

但是我們?cè)谑褂肍lutter管理APP版本時(shí),打開(kāi) pubspec.yaml 只看到一個(gè) version 字段。這時(shí)候我們應(yīng)該怎么設(shè)置APP的 version 和 build 呢?

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

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

同樣我們打開(kāi)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è)文件里面。

為什么說(shuō)移動(dòng)端的未來(lái)是Flutter?

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

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

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

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

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

前言

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

準(zhǔn)備開(kāi)干

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

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

搬磚

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

功夫不負(fù)有心人

效果圖展示

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

GitHub項(xiàng)目地址:

致謝

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

文章名稱(chēng):flutter1.2,flutter122
URL標(biāo)題:http://vcdvsql.cn/article12/dsieidc.html

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

廣告

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

搜索引擎優(yōu)化