當(dāng)我們同時為手機和平板適配編寫 app 針對不同屏幕尺寸進行 UI 布局或當(dāng)用戶偏好設(shè)置較大字號或是想要最大限度等減少動畫等;此時就需要 MediaQuery 來幫我們獲取所用設(shè)備的信息以及用戶設(shè)置的偏好信息;
成都創(chuàng)新互聯(lián)專注于三元網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供三元營銷型網(wǎng)站建設(shè),三元網(wǎng)站制作、三元網(wǎng)頁設(shè)計、三元網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造三元網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供三元網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
MediaQuery 一直存在于 WidgetsApp 和 MaterialApp 中, MediaQuery 繼承自 InheritedWidget 是一個單獨的 Widget ,但一般通過 MediaQuery.of(context) 來獲取相關(guān)信息;
當(dāng)相關(guān)信息發(fā)生變化,例如屏幕旋轉(zhuǎn)等時,屏幕中 Widget 會重新構(gòu)建,以保持最新狀態(tài);我們可以通過 MediaQuery 構(gòu)造函數(shù)和提供的靜態(tài)方法手動設(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 為
每個邏輯像素的字體像素數(shù),小菜理解為字體的像素比;注意,小菜設(shè)置了默認字體像素密度為標(biāo)準(zhǔn)的 1.2 倍之后調(diào)整設(shè)備系統(tǒng)字號,其 1.2 倍依舊是以標(biāo)準(zhǔn)字號為基礎(chǔ)擴大 1.2 倍;
platformBrightness 為當(dāng)前設(shè)備的亮度模式;注意調(diào)整屏幕亮度并不會改變該模式,與當(dāng)前系統(tǒng)支持的黑暗模式和明亮模式相關(guān);
alwaysUse24HourFormat 為當(dāng)前設(shè)備是否為 24 小時制;
accessibleNavigation 為是否使用 TalkBack 或 VoiceOver 之類的輔助功能與應(yīng)用程序進行交互,用以輔助視力障礙人群;
invertColors 為是否使用顏色反轉(zhuǎn),主要用于 iOS 設(shè)備;
highContrast 為用戶是否要求前景與背景之間的對比度高,主要用于 iOS 設(shè)備;
disableAnimations 為平臺是否要求禁用或減少動畫;
boldText 為平臺是否要求使用粗體;
padding 為屏幕內(nèi)邊距,一般是劉海兒屏或異形屏中被系統(tǒng)遮擋部分邊距;
viewInsets 為鍵盤彈出時等遮擋屏幕邊距,其中 viewInsets.bottom 為鍵盤高度;
systemGestureInsets 為手勢邊距,如 Android Q 之后添加的向左滑動關(guān)閉頁面等;
viewPadding 小菜理解為視圖內(nèi)邊距,為屏幕被劉海兒屏或異形屏中被系統(tǒng)遮擋部分,從 MediaQuery 邊界的邊緣計算;此值是保持不變;例如,屏幕底部的軟件鍵盤可能會覆蓋并占用需要底部填充的相同區(qū)域,因此不會影響此值;
physicalDepth 為設(shè)備物理層級,小菜暫時還未想到對應(yīng)的應(yīng)用場景;
小菜在嘗試獲取其他子 Widget Size 時,有兩點需要注意,首先要設(shè)置一個全局的 GlobalKey 來獲取當(dāng)前位置, key 需要為唯一的;第二通過 GlobalKey().currentContext 獲取 BuildContext 上下文環(huán)境,從而獲取對應(yīng)尺寸;
MediaQuery 案例嘗試
小菜對于部分 MediaQueryData 的應(yīng)用和理解還不夠深入;如有錯誤請多多指導(dǎo)!
小編在這里給大家整理了一份web前端開發(fā)完整的學(xué)習(xí)路線,框架在第三階段中,希望可以幫到你~
第一階段:專業(yè)核心基礎(chǔ)
階段目標(biāo):
1. 熟練掌握HTML5、CSS3、Less、Sass、響應(yīng)書布局、移動端開發(fā)。
2. 熟練運用HTML+CSS特性完成頁面布局。
4. 熟練應(yīng)用CSS3技術(shù),動畫、彈性盒模型設(shè)計。
5. 熟練完成移動端頁面的設(shè)計。
6. 熟練運用所學(xué)知識仿制任意Web網(wǎng)站。
7. 能綜合運用所學(xué)知識完成網(wǎng)頁設(shè)計實戰(zhàn)。
知識點:
1、Web前端開發(fā)環(huán)境,HTML常用標(biāo)簽,表單元素,Table布局,CSS樣式表,DIV+CSS布局。熟練運用HTML和CSS樣式屬性完成頁面的布局和美化,能夠仿制任意網(wǎng)站的前端頁面實現(xiàn)。
2、CSS3選擇器、偽類、過渡、變換、動畫、字體圖標(biāo)、彈性盒模型、響應(yīng)式布局、移動端。熟練運用CSS3來開發(fā)網(wǎng)頁、熟練開發(fā)移動端,整理前端要學(xué)好必須每天堅持學(xué)習(xí)。為了方便大家的交流學(xué)習(xí),也是創(chuàng)建了一個群每天都有分享學(xué)習(xí)方法和專業(yè)老師直播前端課程,這個扣裙首先是132 中間是667 最后是127 前端學(xué)習(xí)零基礎(chǔ)想要學(xué)習(xí)的同學(xué)歡迎加入,如果只是湊熱鬧就不要來了!!!網(wǎng)頁開發(fā)技巧。
3、預(yù)編譯css技術(shù):less、sass基礎(chǔ)知識、以及插件的運用、BootStrap源碼分析。能夠熟練使用 less、sass完成項目開發(fā),深入了解BootStrap。
4、使用HTML、CSS、LESS、SASS等技術(shù)完成網(wǎng)頁項目實戰(zhàn)。通過項目掌握第一階段html、css的內(nèi)容、完成PC端頁面設(shè)計和移動端頁面設(shè)計。
第二階段:Web后臺技術(shù)
階段目標(biāo):
1. 了解JavaScript的發(fā)展歷史、掌握Node環(huán)境搭建及npm使用。
2. 熟練掌握JavaScript的基本數(shù)據(jù)類型和變量的概念。
3. 熟練掌握JavaScript中的運算符使用。
4. 深入理解分之結(jié)構(gòu)語句和循環(huán)語句。
5. 熟練使用數(shù)組來完成各種練習(xí)。
6.熟悉es6的語法、熟練掌握JavaScript面向?qū)ο缶幊獭?/p>
7.DOM和BOM實戰(zhàn)練習(xí)和H5新特性和協(xié)議的學(xué)習(xí)。
知識點:
1、軟件開發(fā)流程、算法、變量、數(shù)據(jù)類型、分之語句、循環(huán)語句、數(shù)組和函數(shù)。熟練運用JavaScript的知識完成各種練習(xí)。
2、JavaScript面向?qū)ο蠡A(chǔ)、異常處理機制、常見對象api,js的兼容性、ES6新特性。熟練掌握JavaScript面向?qū)ο蟮拈_發(fā)以及掌握es6中的重要內(nèi)容。
3、BOM操作和DOM操作。熟練使用BOM的各種對象、熟練操作DOM的對象。
4、h5相關(guān)api、canvas、ajax、數(shù)據(jù)模擬、touch事件、mockjs。熟練使用所學(xué)知識來完成網(wǎng)站項目開發(fā)。
第三階段:數(shù)據(jù)庫和框架實戰(zhàn)
階段目標(biāo):
1. 綜合運用Web前端技術(shù)進行頁面布局與美化。
2. 綜合運用Web前端開發(fā)框架進行Web系統(tǒng)開發(fā)。
3. 熟練掌握Mysql、Mongodb數(shù)據(jù)庫的發(fā)開。
4. 熟練掌握vue.js、webpack、elementui等前端框技術(shù)。
5. 熟練運用Node.js開發(fā)后臺應(yīng)用程序。
6. 對Restful,Ajax,JSON,開發(fā)過程有深入的理解,掌握git的基本技能。
知識點:
1、數(shù)據(jù)庫知識,范式,MySQL配置,命令,建庫建表,數(shù)據(jù)的增刪改查,mongodb數(shù)據(jù)庫。深入理解數(shù)據(jù)庫管理系統(tǒng)通用知識及MySQL數(shù)據(jù)庫的使用與管理,為Node.js后臺開發(fā)打下堅實基礎(chǔ)。
2、模塊系統(tǒng),函數(shù),路由,全局對象,文件系統(tǒng),請求處理,Web模塊,Express框架,MySQL數(shù)據(jù)庫處理,RestfulAPI,文件上傳等。熟練運用Node.js運行環(huán)境和后臺開發(fā)框架完成Web系統(tǒng)的后臺開發(fā)。
3、vue的組件、生命周期、路由、組件、前端工程化、webpack、elementui框架。Vue.js框架的基本使用有清晰的理解,能夠運用Vue.js完成基礎(chǔ)前端開發(fā)、熟練運用Vue.js框架的高級功能完成Web前端開發(fā)和組件開發(fā),對MVVM模式有深刻理解。
4、需求分析,數(shù)據(jù)庫設(shè)計,后臺開發(fā),使用vue、node完成pc和移動端整站開發(fā)。于Node.js+Vue.js+Webpack+Mysql+Mongodb+Git,實現(xiàn)整站項目完整功能并上線發(fā)布。
第四階段:移動端和微信實戰(zhàn)
階段目標(biāo):
1.熟練掌握React.js框架,熟練使用React.js完成開發(fā)。
2.掌握移動端開發(fā)原理,理解原生開發(fā)和混合開發(fā)。
3.熟練使用react-native和Flutter框架完成移動端開發(fā)。
4.掌握微信小程序以及了解支付寶小程序的開發(fā)。
5.完成大型電商項目開發(fā)。
知識點:
1、React面向組件編程、表單數(shù)據(jù)、組件通信、監(jiān)聽、聲明周期、路由、Redux基本概念。練使用react完成項目開發(fā)、掌握Redux中的異步解決方案Saga。
2、react-native、開發(fā)工具、視圖與渲染、api操作、Flutter環(huán)境搭建、路由、ListView組件、網(wǎng)絡(luò)請求、打包。練掌握react-native和Flutter框架,并分別使用react-native和Flutter分別能開發(fā)移動端項目。
3、微信小程序基本介紹、開發(fā)工具、視圖與渲染、api操作、支付寶小程序的入門和api學(xué)習(xí)。掌握微信小程序開發(fā)了解支付寶小程序。
4、大型購物網(wǎng)站實戰(zhàn),整個項目前后端分離開發(fā);整個項目分為四部分:PC端網(wǎng)頁、移動端APP、小程序、后臺管理。團隊協(xié)作開發(fā),使用git進行版本控制。目期間可以擴展Three.js 、TypeScript。
1. Can you can a can as a canner can can a can?
你能夠像罐頭工人一樣裝罐頭嗎?
2. I wish to wish the wish you wish to wish, but if you wish the wish the witch wishes, I won't wish the wish you wish to wish.
我希望夢想著你夢想中的夢想,但是如果你夢想著女巫的夢想,我就不想夢想著你夢想中的夢想。
3. I scream, you scream, we all scream for ice-cream!
我叫喊,你叫喊,我們都喊著要冰淇淋!
4. How many cookies could a good cook cook if a good cook could cook cookies? A good cook could cook as much cookies as a good cook who could cook cookies.
如果一個好的廚師能做小甜餅,那么他能做多少小甜餅?zāi)??一個好的廚師能做出和其它好廚師一樣多的小甜餅。
5. The driver was drunk and drove the doctor's car directly into the deep ditch.
這個司機喝醉了,他把醫(yī)生的車開進了一個大深溝里。
6. Whether the weather be fine or whether the weather be not.Whether the weather be cold or whether the weather be hot.We'll weather the weather whether we like it or not.
無論是晴天或是陰天。 無論是冷或是暖, 不管喜歡與否,我們都要經(jīng)受風(fēng)霜雨露。
7. Peter Piper picked a peck of pickled peppers. A peck of pickled peppers Peter Piper picked. If Peter Piper picked a peck of pickled peppers, Where's the peck of pickled peppers Peter Piper picked?
彼德派柏捏起一撮泡菜。 彼德派柏捏起的是一撮泡菜。 那么彼德派捏起的泡菜在哪兒?
8. I thought a thought. But the thought I thought wasn't the thought I thought I thought. If the thought I thought I thought had been the thought I thought, I wouldn't have thought so much.
我有一種想法,但是我的這種想法不是我曾經(jīng)想到的那種想法。如果這種想法是我曾經(jīng)想到的想法,我就不會想那么多了。
9. Amid the mists and coldest frosts, With barest wrists and stoutest boasts, He thrusts his fists against the posts, And still insists he sees the ghosts.
霧蒙蒙,冰霜凍, 手腕兒空空,話兒涌, 只見他猛所拳頭往柱子上砸, 直說自己把鬼碰。
10. Badmin was able to beat Bill at billiards, but Bill always beat Badmin badly at badminton.
巴德明在臺球上能夠打敗比爾,但是打羽毛球比爾常常大敗巴德明。
11. Betty beat a bit of butter to make a better butter.
貝蒂敲打一小塊黃油要做一塊更好的奶油面。
12. Rita repeated what Reardon recited when Reardon read the remarks.
當(dāng)里爾登讀評論時,麗塔重復(fù)里爾登背誦的東西。
13. Few free fruit flies fly from flames.
沒有幾只果蠅從火焰中飛過去。
14. Fifty-five flags freely flutter from the floating frigate.
五十五面旗子在輕輕漂浮的戰(zhàn)艦上自由的飄揚。
15. There is no need to light a night light on a light night like tonight. for a bright night light is just like a slight light.
像今夜這樣明亮的夜晚,就不需要點一盞夜燈,因為明亮的夜燈也會變得微弱。
17. A pleasant peasant keeps a pleasant pheasant and both the peasant and the pheasant are having a pleasant time together.
一位和氣的農(nóng)民養(yǎng)了一只伶俐的野雞,而且這位和氣的農(nóng)民和這只伶俐的野雞在一起度過了一段很美好的時光。
18. How many sheets could a sheet slitter slit if a sheet slitter could slit sheets?
如果裁紙機能裁紙的話,一個裁紙機能裁多少張紙呢?
19. Mr. See owned a saw and Mr. Soar owned a see