国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Flutter應(yīng)用開(kāi)發(fā),系統(tǒng)樣式改不了?SystemChrome 狀態(tài)欄、導(dǎo)航欄、屏幕方向……想改就改

這篇具有很好參考價(jià)值的文章主要介紹了Flutter應(yīng)用開(kāi)發(fā),系統(tǒng)樣式改不了?SystemChrome 狀態(tài)欄、導(dǎo)航欄、屏幕方向……想改就改。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

開(kāi)發(fā)場(chǎng)景

開(kāi)發(fā)APP時(shí),我們經(jīng)常要客制化狀態(tài)欄、導(dǎo)航欄欄等的樣式和風(fēng)格,F(xiàn)lutter開(kāi)發(fā)APP時(shí)如何滿足這些客制化要求呢?

自定義狀態(tài)欄和導(dǎo)航欄的樣式:您可以使用 SystemChrome 來(lái)定義狀態(tài)欄和導(dǎo)航欄的顏色、文字樣式等,以滿足您的設(shè)計(jì)需求。
隱藏系統(tǒng)級(jí)界面元素:如果您希望在應(yīng)用程序運(yùn)行時(shí)隱藏狀態(tài)欄、導(dǎo)航欄或全屏顯示,SystemChrome 可以幫助您實(shí)現(xiàn)這些功能。
控制屏幕方向:SystemChrome 還提供了方法來(lái)鎖定或解鎖屏幕方向,以確保應(yīng)用程序以特定方向顯示。

SystemChrome 介紹

SystemChrome 是 Flutter 中用于控制系統(tǒng)級(jí)界面樣式和行為的類。它提供了一些方法來(lái)修改應(yīng)用程序窗口的外觀和行為,例如狀態(tài)欄、導(dǎo)航欄、屏幕方向等。

SystemChrome的使用

導(dǎo)入 SystemChrome 包

在使用 SystemChrome 之前,您需要在文件中導(dǎo)入 package:flutter/services.dart 包。

import 'package:learning/routes/savecfg.dart';

隱藏狀態(tài)欄

可以使用 SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive)方法來(lái)隱藏狀態(tài)欄。

SystemUiMode.immersive:將系統(tǒng)UI完全隱藏,用戶可以通過(guò)滑動(dòng)從屏幕邊緣恢復(fù)UI的可見(jiàn)性。在此模式下,狀態(tài)欄都會(huì)隱藏。

SystemUiMode.immersiveSticky:類似于 SystemUiMode.immersive,但是用戶可以通過(guò)短暫的觸摸來(lái)恢復(fù)UI的可見(jiàn)性,而不需要完全滑動(dòng)。UI元素將會(huì)暫時(shí)出現(xiàn)并在一段時(shí)間后自動(dòng)隱藏。

SystemUiMode.edgeToEdge:在此模式下,應(yīng)用內(nèi)容將會(huì)延伸到屏幕的邊緣,覆蓋導(dǎo)航欄和狀態(tài)欄。導(dǎo)航欄和狀態(tài)欄仍然存在,但是在應(yīng)用內(nèi)部不可見(jiàn)。

效果如圖:
SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive)調(diào)用前

Flutter應(yīng)用開(kāi)發(fā),系統(tǒng)樣式改不了?SystemChrome 狀態(tài)欄、導(dǎo)航欄、屏幕方向……想改就改

調(diào)用后
Flutter應(yīng)用開(kāi)發(fā),系統(tǒng)樣式改不了?SystemChrome 狀態(tài)欄、導(dǎo)航欄、屏幕方向……想改就改

可以看到顯示電量、時(shí)間等信息的狀態(tài)欄已經(jīng)被隱藏了。

說(shuō)明

這里我們說(shuō)SystemUiMode.immersive:用戶可以通過(guò)滑動(dòng)從屏幕邊緣恢復(fù)UI的可見(jiàn)性。

改變狀態(tài)欄的樣式

SystemChrome.setSystemUIOverlayStyle 方法用于設(shè)置系統(tǒng)級(jí)覆蓋樣式。這個(gè)方法可以接收一個(gè) SystemUiOverlayStyle 對(duì)象作為參數(shù),用于定義狀態(tài)欄和導(dǎo)航欄的樣式。

SystemUiOverlayStyle 是一個(gè)用于描述狀態(tài)欄和導(dǎo)航欄覆蓋樣式的類。它提供了許多屬性,可以用于定義文字顏色、背景顏色、圖標(biāo)亮度等。通過(guò)設(shè)置 SystemUiOverlayStyle 的不同屬性,可以實(shí)現(xiàn)自定義的系統(tǒng)級(jí)樣式。

通過(guò)調(diào)用 SystemChrome.setSystemUIOverlayStyle 方法,可以將自定義的 SystemUiOverlayStyle 應(yīng)用于應(yīng)用程序的狀態(tài)欄和導(dǎo)航欄,從而改變它們的外觀。

例如,可以使用以下代碼將狀態(tài)欄和導(dǎo)航欄設(shè)置為深色文字和淺色背景:

SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark.copyWith(
  statusBarColor: Colors.transparent,
  statusBarBrightness: Brightness.dark,
  statusBarIconBrightness: Brightness.dark,
  systemNavigationBarColor: Colors.white,
  systemNavigationBarIconBrightness: Brightness.dark,
));

這將使?fàn)顟B(tài)欄和導(dǎo)航欄的文字變?yōu)樯钌ê谏蚧疑?,并將背景設(shè)置為淺色(白色)。通過(guò)調(diào)整 SystemUiOverlayStyle 的不同屬性值,可以根據(jù)應(yīng)用程序的需求進(jìn)行自定義。

SystemChrome.setSystemUIOverlayStyle 方法的調(diào)用通常放在應(yīng)用程序的入口處(例如 main 函數(shù))或主題的設(shè)置中,以確保樣式在整個(gè)應(yīng)用程序中生效。
使用SystemChrome.setSystemUIOverlayStyle來(lái)改變狀態(tài)欄的樣式,例如下面的例子讓狀態(tài)欄的背景色變?yōu)榧t色。

  SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.dark.copyWith(
    statusBarColor: Colors.red,
  ));

效果如下:
Flutter應(yīng)用開(kāi)發(fā),系統(tǒng)樣式改不了?SystemChrome 狀態(tài)欄、導(dǎo)航欄、屏幕方向……想改就改

注意事項(xiàng)

請(qǐng)注意,為了使?fàn)顟B(tài)欄的樣式生效,需要在應(yīng)用程序的根 Widget 的 build 方法中調(diào)用 SystemChrome.setSystemUIOverlayStyle() 方法。通常,這會(huì)在 runApp() 方法之前設(shè)置。

另外該代碼只在 Android 平臺(tái)上生效,iOS 平臺(tái)上的狀態(tài)欄樣式無(wú)法直接通過(guò) Flutter 控制。在 iOS 上,狀態(tài)欄的樣式由應(yīng)用程序的 Info.plist 文件中的配置決定。

其他樣式說(shuō)明

在 SystemUiOverlayStyle 對(duì)象中,除了設(shè)置 statusBarColor 外,還可以設(shè)置其他屬性,如:
systemNavigationBarColor 屬性來(lái)定義狀態(tài)欄和導(dǎo)航欄的顏色。
statusBarBrightness、statusBarIconBrightness、systemNavigationBarIconBrightness 屬性來(lái)定義狀態(tài)欄和導(dǎo)航欄文字的顏色。
控制屏幕方向:

鎖定屏幕方向

鎖定屏幕方向:使用 SystemChrome.setPreferredOrientations 方法,并傳遞一個(gè) List 參數(shù),例如 [DeviceOrientation.portraitUp]。
解鎖屏幕方向:使用 SystemChrome.setPreferredOrientations([]) 方法,將一個(gè)空的 List 作為參數(shù)傳遞給它,以解鎖屏

鎖定屏幕方向?qū)嵗?/h3>

我本身寫的例子是豎屏的,上面的截圖也能看到,現(xiàn)在我將它轉(zhuǎn)換成橫屏顯示。添加如下代碼:

    SystemChrome.setPreferredOrientations([
      DeviceOrientation.landscapeLeft,
      DeviceOrientation.landscapeRight,
    ]);

顯示效果如圖
Flutter應(yīng)用開(kāi)發(fā),系統(tǒng)樣式改不了?SystemChrome 狀態(tài)欄、導(dǎo)航欄、屏幕方向……想改就改
實(shí)物圖:
Flutter應(yīng)用開(kāi)發(fā),系統(tǒng)樣式改不了?SystemChrome 狀態(tài)欄、導(dǎo)航欄、屏幕方向……想改就改

注意事項(xiàng)

通過(guò)這樣設(shè)置,即使用戶旋轉(zhuǎn)設(shè)備,應(yīng)用程序仍然會(huì)保持在橫屏模式下,不會(huì)自動(dòng)切換到豎屏模式。
SystemChrome.setPreferredOrientations 方法通常會(huì)在應(yīng)用程序的根 Widget 的 build 方法之前調(diào)用,以確保首選方向設(shè)置生效。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-496637.html

到了這里,關(guān)于Flutter應(yīng)用開(kāi)發(fā),系統(tǒng)樣式改不了?SystemChrome 狀態(tài)欄、導(dǎo)航欄、屏幕方向……想改就改的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • flutter開(kāi)發(fā)實(shí)戰(zhàn)-應(yīng)用更新apk下載、安裝apk、啟動(dòng)應(yīng)用實(shí)現(xiàn)

    flutter開(kāi)發(fā)實(shí)戰(zhàn)-應(yīng)用更新apk下載、安裝apk、啟動(dòng)應(yīng)用實(shí)現(xiàn)

    flutter開(kāi)發(fā)實(shí)戰(zhàn)-應(yīng)用更新apk下載、安裝apk、啟動(dòng)應(yīng)用實(shí)現(xiàn) 在開(kāi)發(fā)過(guò)程中,經(jīng)常遇到需要更新下載新版本的apk文件,之后進(jìn)行應(yīng)用更新apk下載、安裝apk、啟動(dòng)應(yīng)用。我們?cè)趂lutter工程中實(shí)現(xiàn)下載apk,判斷當(dāng)前版本與需要更新安裝的版本進(jìn)行比對(duì)判斷,通過(guò)判斷VersionCode來(lái)確定下載

    2024年02月02日
    瀏覽(60)
  • Flutter 應(yīng)用開(kāi)發(fā)的pubspec.yaml文件說(shuō)明

    pubspec.yaml是Flutter項(xiàng)目中的配置文件,它用于定義項(xiàng)目的依賴項(xiàng)、資源文件以及其他相關(guān)配置。 以下是pubspec.yaml文件的一些關(guān)鍵點(diǎn): 項(xiàng)目名稱:通過(guò)name字段指定項(xiàng)目的名稱。 項(xiàng)目描述:通過(guò)description字段提供對(duì)項(xiàng)目的簡(jiǎn)要描述。 依賴項(xiàng):使用dependencies字段定義項(xiàng)目所依賴的

    2024年02月05日
    瀏覽(19)
  • Flutter中的Web應(yīng)用程序開(kāi)發(fā):構(gòu)建現(xiàn)代Web應(yīng)用程序

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 作為人工智能專家,程序員和軟件架構(gòu)師,CTO,我今天將為大家分享有關(guān) Flutter 中 Web 應(yīng)用程序開(kāi)發(fā)的見(jiàn)解。在這篇文章中,我們將深入探討 Flutter Web 應(yīng)用程序的開(kāi)發(fā)過(guò)程、技術(shù)原理以及最佳實(shí)踐。 引言 隨著移動(dòng)設(shè)備的普及,Web 應(yīng)用程序在全

    2024年02月12日
    瀏覽(33)
  • flutter 開(kāi)發(fā)應(yīng)用 上架到 testFlight 閃退崩潰

    現(xiàn)象描述: 本地模擬器和真機(jī)運(yùn)行正常,上架到testFlight 一直崩潰閃退。 解決思路: 1、進(jìn)行崩潰日志分析??-》沒(méi)有結(jié)果 iOS上獲取崩潰日志的N+1種方法_plcrashreport-CSDN博客 mac 臺(tái)式機(jī)上可以安裝testflight 也可以進(jìn)行測(cè)試 也可以分析崩潰日志 2、進(jìn)行排除法 對(duì)錯(cuò)誤地方進(jìn)行定位

    2024年02月07日
    瀏覽(38)
  • Flutter開(kāi)發(fā)筆記 —— sqflite插件數(shù)據(jù)庫(kù)應(yīng)用

    今天在觀閱掘金大佬文章的時(shí)候,了解到了該 sqflite 插件,結(jié)合官網(wǎng)教程和自己實(shí)踐,由此總結(jié)出該文,希望對(duì)大家的學(xué)習(xí)有幫助! Flutter的 SQLite 插件。支持 iOS、Android 和 MacOS。 支持事務(wù)和batch模式 打開(kāi)時(shí)自動(dòng)進(jìn)行版本管理 插入/查詢/更新/刪除查詢的助手 iOS 和 Android 上的

    2024年02月04日
    瀏覽(34)
  • Flutter移動(dòng)應(yīng)用開(kāi)發(fā) - 01 Flutter初次安裝、模擬器配置教程(手把手版)

    Flutter移動(dòng)應(yīng)用開(kāi)發(fā) - 01 Flutter初次安裝、模擬器配置教程(手把手版)

    首先先安裝一個(gè)編輯器,這邊選用的是Android Studio(Android Studio)。Android Studio的下載和項(xiàng)目創(chuàng)建平平無(wú)奇,唯一可能有問(wèn)題的就是gradle文件的下載,如果沒(méi)翻墻的話需要手動(dòng)下載和配置,在此不多介紹。 接下來(lái)文件的配置。 官網(wǎng)下載并解壓Flutter SDK 版本列表 - Flutter 中文文檔

    2023年04月25日
    瀏覽(93)
  • Android應(yīng)用開(kāi)發(fā)-Flutter的LongPressDraggable控件回調(diào)函數(shù)onDraggableCanceled使用

    Android應(yīng)用開(kāi)發(fā)-Flutter的LongPressDraggable控件回調(diào)函數(shù)onDraggableCanceled使用

    以下是如何使用 onDraggableCanceled 的示例: velocity 參數(shù)表示拖動(dòng)被取消時(shí)的速度信息。 offset 參數(shù)表示拖動(dòng)被取消時(shí)的偏移量信息。 這個(gè)回調(diào)通常用于在拖動(dòng)被取消時(shí)執(zhí)行一些清理工作或展示一些反饋。例如,你可能想要將拖動(dòng)對(duì)象返回到原始位置,或者顯示一個(gè)提示,告訴用

    2024年03月08日
    瀏覽(25)
  • HarmonyOS鴻蒙開(kāi)發(fā)指南:基于ArkTS開(kāi)發(fā) 輕量級(jí)智能穿戴 體驗(yàn)應(yīng)用、構(gòu)建布局、繪制樣式???????和交互事件

    HarmonyOS鴻蒙開(kāi)發(fā)指南:基于ArkTS開(kāi)發(fā) 輕量級(jí)智能穿戴 體驗(yàn)應(yīng)用、構(gòu)建布局、繪制樣式???????和交互事件

    目錄 體驗(yàn)應(yīng)用 構(gòu)建布局 繪制樣式??????? 交互事件 HelloWorld工程目錄如下圖所示: 圖1? 目錄結(jié)構(gòu) pages/index/index.hml

    2024年02月01日
    瀏覽(27)
  • Flutter開(kāi)發(fā)實(shí)踐:用一套代碼構(gòu)建多端精美應(yīng)用

    Flutter開(kāi)發(fā)實(shí)踐:用一套代碼構(gòu)建多端精美應(yīng)用

    ??作者簡(jiǎn)介,黑夜開(kāi)發(fā)者,CSDN領(lǐng)軍人物,全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者?,CSDN博客專家,阿里云社區(qū)專家博主,2023年6月CSDN上海賽道top4。 ??數(shù)年電商行業(yè)從業(yè)經(jīng)驗(yàn),歷任核心研發(fā)工程師,項(xiàng)目技術(shù)負(fù)責(zé)人。 ??歡迎 ??點(diǎn)贊?評(píng)論?收藏 在移動(dòng)應(yīng)用開(kāi)發(fā)中,為了在不同平臺(tái)上提供

    2024年02月05日
    瀏覽(41)
  • Flutter應(yīng)用發(fā)布流程詳解:從開(kāi)發(fā)到上架一站式指南

    Flutter應(yīng)用發(fā)布流程詳解:從開(kāi)發(fā)到上架一站式指南

    Flutter是一款由Google推出的跨平臺(tái)移動(dòng)應(yīng)用開(kāi)發(fā)框架,其強(qiáng)大的性能和流暢的用戶體驗(yàn)使其備受開(kāi)發(fā)者青睞。然而,開(kāi)發(fā)一款應(yīng)用只是第一步,將其成功上架到蘋果商店才是實(shí)現(xiàn)商業(yè)目標(biāo)的關(guān)鍵一步。本文將詳細(xì)介紹如何使用Flutter將應(yīng)用程序上架到蘋果商店,讓您的應(yīng)用更快

    2024年04月09日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包