android 詳細的底部導航欄的實作
- 目錄
- 前言
- 一、建立一個menu的Actvity
- 二、建立一個**navigation**的Activity
-
- 1.在res中建立一個navigation的activity,它會在res自動生成一個navigation檔案夾。
- 總結
根據系統自帶的 Bottom Navigation Activity來實作android底部菜單欄,本人是android初學者,從網上找了一堆的教程,老是出現各種各樣的bug,然後才發現使用android官方自帶的工具可以快捷實作底部菜單的切換。
目錄
提示:本人是從B站up主longway777的android教程視訊借鑒學習所有感而發,寫這麼一篇基礎教程。
文章目錄
- 目錄
- 前言
- 一、建立一個menu的Actvity
- 二、建立一個**navigation**的Activity
-
- 1.在res中建立一個navigation的activity,它會在res自動生成一個navigation檔案夾。
- 總結
前言
提示:檢視build.gradle裡面設定的minSdkVersion是否大于16。
提示:以下是本篇文章正文内容,下面案例可供參考
一、建立一個menu的Actvity
示例:
在android工程的res下去建立一個menu屬性的activit
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN2XjlGcjAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLzUlaNJza61UMFpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxcjM5MDOxcTMwITMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
建立完成後,我們在Design下,去講menu設計三個菜單選項,用來為底部菜單選線,設定三個菜單選項。
這樣我們的菜單樣式就完成了!
二、建立一個navigation的Activity
1.在res中建立一個navigation的activity,它會在res自動生成一個navigation檔案夾。
若不知道navigation的用法,請自行百度搜尋。
至此就已經建立完成了,,,然後我們去java包下去建立,
建立三個Fragment,将Fragment綁定到navigation
将Fragment建立完成後,來到navigation就可以看到剛剛建立的navigation。将它們添加進去。
此處的ID,一定要與menu裡面設定的ID相等,否則會無法找到menu設定的參數。
設定完成之後呢,不要忘記将menu跟BottomNavigationView綁定
綁定完成後,我們調整一下BottomNavigationView的位置,讓其在activity的底部顯示。
将左右跟底部與activity綁定,設定layout_height為
然後就完成了一半了
然後,我們再将
我們建立的navigation通過元件綁定到activity中,
調節完Fragment後,我們基本上就算将頁面布局完成了,現在隻需要用代碼,控制其點選不同的底部按鈕進行切換不同的Fragment就可以了
代碼的話我貼一下:
// 步驟1:擷取FragmentManager
FragmentManager fragmentManager = getFragmentManager();
// 步驟2:擷取FragmentTransaction
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
BottomNavigationView bottomNavigationView = findViewById(R.id.bottomNavigationView);
NavController navController = Navigation.findNavController(this,R.id.fragment1);
AppBarConfiguration configuration = new AppBarConfiguration.Builder(navController.getGraph()).build();
NavigationUI.setupWithNavController(bottomNavigationView,navController);
一定要将代碼寫到Activity的onCreate裡面,否則NavigationUI.setupWithNavController會報錯
bottomNavigationView 是建立BottomNavigationView的id
fragment1 是建立Fragment設定的id
AppBarConfiguration.Builder(NavGraph navGraph)
頂級目标是NavGraph的起始頁面
具體可看Fragment- JetPack Navigation 全面介紹
然後就綁定完成成功了
總結
提示:這裡對文章進行總結:
通過activity元件中的BottomNavigationView跟NavHostFragment元件,将menu跟Navigation綁定到一起,通過代碼實作點選不用底部按鈕,切換綁定的Fragment。