在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

導航對多返回棧的支持

谷歌開發者 ? 來源:Android 開發者 ? 作者:Android ? 2021-09-29 11:21 ? 次閱讀

歡迎來到第二個關于導航的 MAD Skill 系列的另一篇文章!本文我們將介紹一個呼聲很高的功能,即導航 (Navigation) 對多返回棧的支持。如果您更傾向于視頻的形式,請查看以下視頻內容:

概述

假設您的應用使用了 BottomNavigationView。通過這個功能,當用戶選擇另一個標簽頁 (Tab) 時,當前標簽頁的返回棧會被保存,而所選標簽頁的返回棧會被恢復。

從 2.4.0-alpha01 版本開始,NavigationUI 輔助類不需要改變任何代碼即可支持多返回棧。也就是說,如果您的應用使用了為 BottomNavigationView 或 NavigationView 提供的 setupWithNavController() 方法,則只需要更新依賴庫版本,便可默認啟用多返回棧。

支持多返回棧

讓我們通過這個倉庫中的高級導航示例來看看實際效果。

該應用由 3 個標簽頁組成,每個標簽頁都有它自己的導航流。為了在導航的早期版本中支持多返回棧,我們需要在該示例的 NavigationExtensions 文件中添加一系列輔助函數。通過這些擴展函數,應用可以為每個標簽頁保持一個單獨的 NavHostFragment,每個 NavHostFragment 帶有它自己的返回棧,當用戶切換標簽頁時,應用在不同的 NavHostFragment 之間進行切換。

倉庫

https://github.com/android/architecture-components-samples/tree/master/NavigationAdvancedSample

NavigationExtensions

https://github.com/android/architecture-components-samples/blob/8f4936b34ec84f7f058fba9732b8692e97c65d8f/NavigationAdvancedSample/app/src/main/java/com/example/android/navigationadvancedsample/NavigationExtensions.kt

讓我們看看如果移除這些擴展函數會發生什么。為此我刪除了 NavigationExtensions 類,在所有使用它的地方都替換為 NavigationUI 中標準的 setupWithNavController() 方法以將我們的 BottomNavigationView 連接到 NavController 上。

class MainActivity : AppCompatActivity()

{ private lateinit var navController: NavController private lateinit var appBarConfiguration: AppBarConfiguration override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main) val navHostFragment = supportFragmentManager.findFragmentById( R.id.nav_host_container ) as NavHostFragment navController = navHostFragment.navController

// 使用 navController 設置 bottomNavigationView val bottomNavigationView = findViewById《BottomNavigationView》(R.id.bottom_nav) bottomNavigationView.setupWithNavController(navController)

// 使用 navController 設置 ActionBar 以及 3 個一級目的地頁面 appBarConfiguration = AppBarConfiguration( setOf(R.id.titleScreen, R.id.leaderboard, R.id.register) ) val toolbar = findViewById《Toolbar》(R.id.toolbar) setSupportActionBar(toolbar) toolbar.setupWithNavController(navController, appBarConfiguration) } override fun onSupportNavigateUp(): Boolean { return navController.navigateUp(appBarConfiguration)

}}

同時,我使用 include 標簽將 3 個單獨的導航圖合并為一個圖。現在我們的 Activity 布局只包含一個帶有單個導航圖的 NavHostFragment。

《navigation xmlns:android=“http://schemas.android.com/apk/res/android” xmlns:app=“http://schemas.android.com/apk/res-auto” android:id=“@+id/nav_graph” app:startDestination=“@+id/home”》

《include app:graph=“@navigation/home”/》 《include app:graph=“@navigation/list”/》 《include app:graph=“@navigation/form”/》

《/navigation》

當我運行應用時,這次底部標簽頁不再保持它們的狀態,并會在我切換到其他標簽頁時重置它的返回棧。由于移除了 NavigationExtensions,該應用不再支持多返回棧。 現在我將更新 navigation 和 fragment 依賴庫的版本。

// fragment 最新版本 https://developer.android.google.cn/jetpack/androidx/releases/fragment?hl=en// navigation 最新版本 https://developer.android.google.cn/jetpack/androidx/releases/navigation?hl=en

versions.fragment = “1.4.0-alphaXXX”versions.navigation = “2.4.0-alphaXXX”

Gradle sync 完成后,我再次運行應用,這時當我導航至其他標簽頁,可以看到每個標簽頁都保持了它的狀態。注意這個行為是默認啟用的。 最后,讓我們運行測試來驗證是否一切正常。該應用已經擁有一些驗證多返回棧行為的測試。我運行 BottomNavigationTest 并觀察每個底部導航行為測試的運行。 瞧,我們所有測試都通過了!

小結

就是這樣!如果您的應用使用 BottomNavigationView 或 NavigationView,并且您一直在等待支持多返回棧,您所需要做的僅僅是更新 navigation 和 fragment 依賴庫,不需要改變任何代碼! 如果您需要進一步的自定義,也有新的 API 支持保存和恢復返回棧。請參閱我們之前的推文《Android 多返回棧技術詳解》。 如果您想了解更多有關底層 API 以及需要修改哪些內容以支持多返回棧的信息,請參閱我們之前的推文《全新的 Fragment: 使用新的狀態管理器》。 感謝您關注本導航系列!

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 導航
    +關注

    關注

    7

    文章

    529

    瀏覽量

    42437
  • 代碼
    +關注

    關注

    30

    文章

    4791

    瀏覽量

    68694

原文標題:導航: 多返回棧 | MAD Skills

文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    AT6558R-5N32:高性能BDS/GNSS模衛星車載導航接收機SOC單芯片

    AT6558R:高性能BDS/GNSS模衛星導航接收機SOC單芯片,支持北斗、GPS 等系統聯合定位,集成射頻前端、數字基帶處理器、32位RISC CPU和電源管理功能,功耗低,封
    的頭像 發表于 12-24 15:24 ?180次閱讀
    AT6558R-5N32:高性能BDS/GNSS<b class='flag-5'>多</b>模衛星車載<b class='flag-5'>導航</b>接收機SOC單芯片

    AT6558F:BDS/GNSS模衛星導航接收機SOC單芯片應用選型

    AT6558F是一款高性能BDS/GNSS模衛星導航接收機SOC單芯片,片上集成射頻前端,數字基帶處理器,32位的RISC CPU,電源管理功能。芯片支持多種衛星導航系統,包括中國的
    的頭像 發表于 11-06 16:35 ?340次閱讀
    AT6558F:BDS/GNSS<b class='flag-5'>多</b>模衛星<b class='flag-5'>導航</b>接收機SOC單芯片應用選型

    E108-GN系列GNSS模衛星導航定位模塊產品說明

    E108-GN03和E108-GN04系列系列GNSS模衛星定位導航模塊,具有高性能、高集成度、低功耗、低成本等特點。該系列GNSS模衛星定位導航模塊
    的頭像 發表于 10-25 12:05 ?266次閱讀

    【新品】精準體驗!GNSS模衛星定位模塊,GPS+北斗等系統

    E108-GN03系列和E108-GN04系列是高性能、高集成度、低功耗、低成本的模衛星定位導航模塊。E108-GN03系列基于AT6558R方案,支持BDS/GPS/GLON
    的頭像 發表于 10-11 08:03 ?485次閱讀
    【新品】精準體驗!GNSS<b class='flag-5'>多</b>模衛星定位模塊,GPS+北斗等<b class='flag-5'>多</b>系統

    ATGM336H-5N杭州中科微BDS定位導航模塊技術規范

    ;可以讓客戶增加新的控制功能,如定位記錄,規則的地理圍欄,自定義的輸出格式。 產品選型:性能指標: 出色的定位導航功能,支持 BDS/GPS/GLONASS 衛星導航系統的單系統定位,以及任意組合的
    發表于 09-23 10:45

    ATGM336H-5N杭州中科微BDS定位導航模塊規格參數

    /GLONASS 衛星導航系統的單系統定位,以及任意組合的系統聯合定位,并支持 QZSS 和 SBAS 系統 支持 A-GNSS 冷啟動捕獲靈敏度:-148dBm 跟蹤靈敏度:-16
    的頭像 發表于 09-23 10:35 ?780次閱讀
    ATGM336H-5N杭州中科微BDS定位<b class='flag-5'>導航</b>模塊規格參數

    RVBacktrace RISC-V極簡回溯組件

    RVBacktrace組件簡介一個極簡的RISC-V回溯組件。功能在需要的地方調用組件提供的唯一API,開始當前環境的回溯支持輸出addr2line需要的命令,使用addr2line進行棧回溯
    的頭像 發表于 09-15 08:12 ?404次閱讀
    RVBacktrace RISC-V極簡<b class='flag-5'>棧</b>回溯組件

    AT872-F8N高性能GNSS全模頻定位導航模塊數據手冊

    AT872-F8N系列模塊是一款尺寸為12.2×16mm的高性能GNSS全模頻定位導航模塊。 AT872-F8N系列模塊產品基于中科微新一代系統GNSS SOC單芯片AT988
    的頭像 發表于 08-29 15:03 ?376次閱讀
    AT872-F8N高性能GNSS全模<b class='flag-5'>多</b>頻定位<b class='flag-5'>導航</b>模塊數據手冊

    ATGM332D-F8N低功耗單北斗頻定位導航模塊資料

    在傳播過程中受到的影響不同,通過多頻觀測可以消除或減弱這些影響,從而提高定位的準確性。 2、精密算法支持:現代定位導航模塊通常配備有精密的算法,能夠充分利用頻信號的信息,進行高精度的位置解算。這些算法能夠處理
    的頭像 發表于 08-21 18:23 ?517次閱讀
    ATGM332D-F8N低功耗單北斗<b class='flag-5'>多</b>頻定位<b class='flag-5'>導航</b>模塊資料

    車載微星導航芯片:AT6558R數據手冊解讀

    高性能的BDS/GNSS模微星導航接收機SOC單芯片,片上集成射頻前端數字基帶為核心,模式微星信號處理引擎,電源管理等功能。 關于AT6558R的射頻前端支持全星座的衛星信號頻點:
    發表于 07-05 17:36

    再說一說信號的返回電流

    低頻,返回電流是往最低電阻的路徑流動 高頻,返回電流是往最低阻抗的路徑回流,阻抗主要成分是感抗
    的頭像 發表于 06-11 18:52 ?1559次閱讀
    再說一說信號的<b class='flag-5'>返回</b>電流

    商湯科技與海通證券攜手發布金融行業首個模態全式大模型

    商湯科技與海通證券聯合研發并發布了金融行業內首個面向業務場景的模態全式大模型。雙方計劃將這一先進技術應用于智能問答、合規風控、代碼輔助以及辦公助手等關鍵業務領域,以實現大模型技術的全面落地。
    的頭像 發表于 05-06 10:16 ?470次閱讀

    商湯科技聯合海通證券發布業內首個面向金融行業的模態全式大模型

    4月23日,商湯科技正式推出“日日新SenseNova 5.0”大模型體系,并與海通證券聯合發布業內首個面向金融行業的模態全式大模型。
    的頭像 發表于 04-26 09:48 ?480次閱讀
    商湯科技聯合海通證券發布業內首個面向金融行業的<b class='flag-5'>多</b>模態全<b class='flag-5'>棧</b>式大模型

    物聯數據網關是什么?

    。 物聯數據網關在物理層面上可以通過不同的通信協議與物聯網設備進行通信,可以與多個物聯網設備建立連接,同時處理多個設備的數據。 物聯數據網關可以支持不同的物聯網設備使用的不同協議,將不同協議的數據進行轉換,
    的頭像 發表于 03-29 17:10 ?327次閱讀

    堆和的區別和使用注意事項

    堆和是在計算機科學中廣泛使用的兩種數據結構,它們具有不同的用途和特點。堆和的區別涉及到內存分配、訪問方式、數據存儲等方面。在使用堆和時,還需要注意一些細節,以確保程序的正確性和效率。本文將詳細
    的頭像 發表于 01-18 17:24 ?2242次閱讀
    主站蜘蛛池模板: 天天操天天干天天拍| 激情五月俺来也| 亚洲国产成人久久一区www| 天天躁狠狠躁夜夜躁2021| 午夜影音| 国产高清在线播放免费观看| 男操女视频在线观看| 国产欧美日韩haodiaose| 一区二区三区免费在线| 精品乱码一区二区三区四区| 国产免费福利网站| 国产黄视频在线观看| 男男h文小说阅| 一二三区在线观看| 日本黄色xxxx| 午夜久久久久久亚洲国产精品| 能看毛片的网址| 欧美性猛交xxxx| 久久久久国产| 欧美最猛黑人xxxx黑人猛交黄| 在线观看一区二区三区四区| 看黄视频免费| 年轻护士女三级| 一区二区三区欧美在线| 美女写真mm爽爽爽| 亚洲日本精品| 日本三级最新中文字幕电影| 色免费观看| 婷婷综合七月激情啪啪| 一级一级女人18毛片| 色综合网址| 日韩色爱| 色爱综合区| 四虎影院视频| 久久国产乱子伦精品免费强| 久青草免费在线视频| 六月丁香婷婷网| 2018国产一级天天弄| 午夜精品福利视频| 国产成人夜间影院在线观看| 九九草在线观看|