chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

全新導航庫Jetpack Navigation 3發(fā)布

谷歌開發(fā)者 ? 來源:谷歌開發(fā)者 ? 2025-08-06 13:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者 / 開發(fā)者關(guān)系工程師 Don Turner

在應(yīng)用中的不同屏幕之間導航理應(yīng)簡單明了。然而,構(gòu)建穩(wěn)健、可擴展且賞心悅目的導航體驗卻并非易事。多年來,Jetpack Navigation 庫一直是開發(fā)者的重要工具,但隨著 Android 界面格局的演變,尤其是 Jetpack Compose 的興起,我們意識到是時候探索一種全新的解決方案了。

我們將在本文為您介紹新推出的 Jetpack Navigation 3,這是一個專為 Compose 打造的全新導航庫。為簡潔起見,我們將其簡稱為 Nav3。這個庫采用了聲明式編程模型和 Compose 狀態(tài)作為其基本構(gòu)建模塊。

為什么要推出新的導航庫?

之前的 Jetpack Navigation 庫 (有時也稱為 Nav2,因為它是第二個主版本) 最初是在 2018 年發(fā)布的,彼時還沒有 AndroidX 和 Compose 這兩個框架。雖然 Nav2 已經(jīng)很好地實現(xiàn)了最初目標,但我們了解到,在與現(xiàn)代 Compose 開發(fā)模式結(jié)合使用時,Nav2 存在一些限制。

其中一個關(guān)鍵的限制是僅支持間接觀察返回堆棧狀態(tài)。這意味著可能存在兩個事實來源,從而導致應(yīng)用狀態(tài)出現(xiàn)不一致的情況。此外,Nav2 的 NavHost 被設(shè)計為僅顯示一個目標位置 (即返回堆棧中的最頂層目標位置) 以填充可用空間。這使得實現(xiàn)同時顯示多個內(nèi)容窗格的自適應(yīng)布局 (例如大屏幕上的列表-詳情布局) 變得困難。

創(chuàng)立原則

Nav3 基于以下原則構(gòu)建而成,旨在提供更大的靈活性并提高開發(fā)者掌控力:

您掌控返回堆棧: 作為開發(fā)者,您將擁有并控制返回堆棧,而不是將控制權(quán)交給庫。這是一個簡單的列表,由 Compose 狀態(tài)支持。具體而言,Nav3 期望您的返回堆棧為 SnapshotStateList,其中 T 可以是您選擇的任何類型。您可以通過添加或刪除項目 (T) 來進行導航,狀態(tài)的變化會被 Nav3 的界面觀測到,并自動反映在其界面上。

告別繁瑣: 我們深知您不喜歡導航庫具有無法訪問的內(nèi)部組件和狀態(tài)的 "黑匣子" 式設(shè)計。Nav3 的設(shè)計秉承開放性和可擴展性原則,為您提供構(gòu)建模塊和實用的默認設(shè)置。如果您想要自定義導航行為,可以深入到更低的層級,創(chuàng)建您自己的組件和自定義設(shè)置。

選擇您的構(gòu)建模塊: Nav3 并沒有將所有行為嵌入到庫中,而是提供了更小巧的組件,您可以組合這些組件來創(chuàng)建更復(fù)雜的功能。我們還準備了操作指南,其中介紹了如何組合組件來解決常見的導航挑戰(zhàn)。

關(guān)鍵功能

動畫: 內(nèi)置的過渡動畫可用于實現(xiàn)目標位置的切換,包括預(yù)測性返回。此外,它還擁有支持自定義動畫行為的靈活 API,允許在應(yīng)用和單個屏幕級別覆寫動畫。

自適應(yīng)布局: 通過使用靈活布局 API (名為 Scenes),您可在同一布局中渲染多個目標位置 (例如,大屏設(shè)備上的列表-詳情布局)。您可借此輕松地在單窗格和多窗格布局之間切換。

狀態(tài)范圍限定: 能夠?qū)顟B(tài)限定在返回堆棧中的目標位置范圍內(nèi),同時還可通過專用 Jetpack lifecycle 庫提供可選的 ViewModel 支持。

模塊化: API 設(shè)計允許將導航代碼拆分到多個模塊中。這縮短了構(gòu)建時間并使各個功能模塊之間的職責劃分更加清晰。

基本代碼示例

為了幫助您了解 Nav3 的工作原理,我們準備了簡短的代碼示例。

// Define the routes in your app and any arguments.
dataobjectHome
dataclassProduct(valid: String)
// Create a back stack, specifying the route the app should start with.
valbackStack = remember { mutableStateListOf(Home) }
// A NavDisplay displays your back stack. Whenever the back stack changes, the display updates.
NavDisplay(
  backStack = backStack,
 // Specify what should happen when the user goes back
  onBack = { backStack.removeLastOrNull() },
 // An entry provider converts a route into a NavEntry which contains the content for that route.
  entryProvider = { route ->
   when(route) {
     isHome -> NavEntry(route) {
        Column {
          Text("Welcome to Nav3")
          Button(onClick = {
           // To navigate to a new route, just add that route to the back stack
            backStack.add(Product("123"))
          }) {
            Text("Click to navigate")
          }
        }
      }
     isProduct -> NavEntry(route) {
        Text("Product${route.id}")
      }
     else-> NavEntry(Unit) { Text("Unknown route:$route") }
    }
  }
)

開始使用并分享反饋

首先,您可以查看開發(fā)者文檔以及操作指南,其中提供了以下示例:

常見導航界面,例如導航邊欄或?qū)Ш綑?/p>

條件導航,例如登錄流程

使用 Scenes 的自定義布局

我們計劃在未來為更復(fù)雜的用例提供代碼示例、技術(shù)文檔和文章。

Nav3 目前處于 Alpha 階段,這意味著我們可能會根據(jù)反饋修改 API。

Nav3 為在 Compose 應(yīng)用中構(gòu)建現(xiàn)代導航提供了靈活而強大的基礎(chǔ)。我們非常期待看到您借此打造的精彩作品。

您可以在 io.google 上查看所有 Google I/O 2025 的精彩更新。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3980

    瀏覽量

    132312
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3609

    瀏覽量

    51418
  • 開發(fā)者
    +關(guān)注

    關(guān)注

    1

    文章

    687

    瀏覽量

    17843

原文標題:Jetpack Navigation 3 | 專為 Compose 打造的全新導航庫

文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    iphone5發(fā)布會直播預(yù)告_iphone5發(fā)布會現(xiàn)場

    蘋果iphone5發(fā)布會即將開始,iphone5發(fā)布會現(xiàn)場有哪些看點呢?小編在這里提供了iphone5發(fā)布會直播預(yù)告共大家參考了解,另外還有iphone5預(yù)定時間哦
    發(fā)表于 09-12 17:19 ?1.8w次閱讀

    疑似喬布斯iphone5發(fā)布會彩排視頻

    彩排iPhone 5發(fā)布會的視頻?! ∧壳斑@一段視頻在國外的視頻網(wǎng)站已經(jīng)全部因蘋果要求而刪除,僅留下這一個還能看?! ∫曨l拍攝距離較遠,不能看清喬布斯的面容,但是身上的裝扮還是幫主的一貫風格。片中
    發(fā)表于 04-25 14:49

    [視頻] 蘋果iPhone7發(fā)布會完整視頻回顧_中文字幕

    `iPhone7蘋果發(fā)布會8號已經(jīng)開了,現(xiàn)在除了發(fā)布會中文視頻直播全程視頻,沒看的親來看哦!~~我已經(jīng)發(fā)到發(fā)燒友本站上,喜歡的親們來猛戳 點擊標題看iPhone7發(fā)布會視頻回顧--》》iPhone7
    發(fā)表于 09-12 17:18

    小米6發(fā)布會幾點開始? 小米6發(fā)布會直播網(wǎng)址介紹

    小米6發(fā)布會會在今天開啟,那么小米6發(fā)布會在4月19號幾點開呢?小米6發(fā)布會地點是哪里?小編給大家做個詳細的介紹。
    發(fā)表于 04-19 14:19 ?1599次閱讀

    蘋果AirPods 3將如期在明年3發(fā)布

    年底蘋果是否會帶來所謂頭戴耳機AirPods Studio還有待觀察,不過,最新爆料稱,AirPods 3正有序推進,將如期在明年3發(fā)布
    的頭像 發(fā)表于 12-08 09:42 ?2347次閱讀

    蘋果AirPods 3采用入耳式設(shè)計,將在明年3發(fā)布

    年底蘋果是否會帶來所謂頭戴耳機AirPods Studio還有待觀察,不過,最新爆料稱,AirPods 3正有序推進,將如期在明年3發(fā)布。
    發(fā)表于 12-08 10:35 ?1687次閱讀

    蘋果有望在3發(fā)布第五代iPad Pro

    多方消息指出,蘋果最快3發(fā)布第五代iPad Pro。
    的頭像 發(fā)表于 01-12 17:23 ?4052次閱讀

    ADRV9026發(fā)布軟件SW5.1.0.27

    ADRV9026發(fā)布軟件SW5.1.0.27
    發(fā)表于 03-23 08:34 ?12次下載
    ADRV9026<b class='flag-5'>發(fā)布</b>軟件SW5.1.0.27

    iqoo8發(fā)布會如約而至 iqoo8發(fā)布會有哪些看點

    今晚(8月17日)北京時間19點30分,期盼已久的iQOO8系列旗艦手機將會迎來全新發(fā)布,iQOO秋季新品發(fā)布會依然采用線上形式進行,iqoo8發(fā)布會有哪些看點?
    的頭像 發(fā)表于 08-17 15:51 ?4926次閱讀

    蘋果13發(fā)布會2021發(fā)布會時間

    蘋果13發(fā)布會2021發(fā)布會時間目前已經(jīng)基本確定。根據(jù)知情人士透露,蘋果公司將于9月15日晚正式舉行秋季新品發(fā)布會。據(jù)了解,蘋果新品發(fā)布會亮點還是有很多的,屆時跟iPhone 13系列
    的頭像 發(fā)表于 09-04 17:48 ?1.9w次閱讀

    蘋果13發(fā)布會什么時候 蘋果13發(fā)布會預(yù)告

    蘋果13發(fā)布會即將如約而至,蘋果13發(fā)布會就在今晚(9月15日)凌晨正式召開,新款Macbook Pro、AirPods3、iPhone13系列和iPad mini6屆時將會在蘋果秋季新品發(fā)布
    的頭像 發(fā)表于 09-14 09:15 ?3234次閱讀

    小米12發(fā)布時間和價格

    小米12發(fā)布時間和價格:昨日雷軍親自官宣了小米12發(fā)布會的信息,稱小米12發(fā)布會將于12月28日正式舉行,從小米12系列的官方渲染圖來看,小米將會發(fā)布小米12 Ultra、小米12 P
    的頭像 發(fā)表于 12-23 11:49 ?6807次閱讀

    華為nova10發(fā)布會:nova10系列全新支持WiFi 6增強技術(shù)

    華為nova10發(fā)布會:nova10系列全新支持WiFi 6增強技術(shù) ? ? ? ? ? ? 審核編輯:彭靜 ?
    的頭像 發(fā)表于 07-04 15:36 ?3938次閱讀
    華為nova10<b class='flag-5'>發(fā)布</b>會:nova10系列<b class='flag-5'>全新</b>支持WiFi 6增強技術(shù)

    AITO問界M7發(fā)布PetalMaps打造全新智慧導航體驗

    解決方案BU CEO余承東在發(fā)布會上表示,要讓用戶“愛上車機導航”。Petal Maps創(chuàng)新性地實現(xiàn)手機-車機導航任務(wù)跨端流轉(zhuǎn)、位置便捷分享,同時可提供無處不在的導航信息,結(jié)合智慧分屏
    的頭像 發(fā)表于 07-05 14:38 ?2856次閱讀
    AITO問界M7<b class='flag-5'>發(fā)布</b>PetalMaps打造<b class='flag-5'>全新</b>智慧<b class='flag-5'>導航</b>體驗

    華為nova10發(fā)布會 華為nova10美學設(shè)計全新升級

    華為nova10發(fā)布會 華為nova10美學設(shè)計全新升級 ? ? ? ? ? 審核編輯:彭靜
    的頭像 發(fā)表于 07-05 14:49 ?1239次閱讀
    華為nova10<b class='flag-5'>發(fā)布</b>會 華為nova10美學設(shè)計<b class='flag-5'>全新</b>升級