用户国营 发表于 2024-12-26 19:25:48

Android Studio 基于Menu和BottomNavigationView实现底部导航栏,并实现自

#前言

        众所周知,要做一个安卓app,对于导航栏的需求是一直都不外时的,像市面上的大部门app它们都是浩繁导航栏叠加实现了多种酷炫的效果,当然最告急的是页面跳转这个功能。

        本期教程我将告诉小搭档们如何使用 Menu 和 BottomNavigationView 来实现底部导航栏,实现效果如下:
   屏幕录制 2024-11-13 124246


注意:一目十行,保证头疼,请逐步看  ~^<^~

步调一:

        实现我们要确保我们的 res 资源文件夹下有 menu 资源文件夹,由于我们必要这个资源文件夹下的一些属性及方法:
 (1) res -> New -> Android Resource Directory 

https://i-blog.csdnimg.cn/direct/b1f177a60b734ff2824a708a4a8e8e63.png
(2) 在Resource type 下选择menu,并点击OK

https://i-blog.csdnimg.cn/direct/c39a7f757a18441d949cc89c9ba6c8ab.png
(3)在 menu 资源文件夹下创建一个menu类的资源文件

menu -> New -> Menu Resource File
https://i-blog.csdnimg.cn/direct/92ca67ddb91b450fbf96e2d09b31bb57.png
(4) 命名为 bottom_menu (这个根据个人习惯自行命名就行,不外得注意后续引用资源文件时要注意名称)点击OK

https://i-blog.csdnimg.cn/direct/e6e59ff30c8a4a32bb1f87e6194ffd5c.png
 (5)在 bottom_menu.xml 文件下加入如下代码,(可以根据个人需求进行更改,代码并不复杂)

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
      android:id="@+id/bottom_group"
      android:title="分组"
      android:icon="@drawable/icon_group"></item>

    <item
      android:id="@+id/bottom_crony"
      android:title="好友"
      android:icon="@drawable/icon_crony"
      ></item>

    <item
      android:id="@+id/bottom_add"
      android:title="发现"
      android:icon="@drawable/icon_discover"
      ></item>

    <item
      android:id="@+id/bottom_myself"
      android:title="我的"
      android:icon="@drawable/icon_myself"></item>
</menu> 这里必要注意的是,我们的 icon 资源是我们个人定义的,这里我只展示此中一个的创建方法,其余的小搭档们根据个人需求自行创建,这个创建是比较简朴的,小搭档们应该能轻松闻一知十

drawable -> New -> Vector Asset

https://i-blog.csdnimg.cn/direct/9c731abfc13145eda0a5aef7ddcd3704.png
  在Clip art 中选择一个你喜欢的图标

https://i-blog.csdnimg.cn/direct/dde5ed65ca4e4a73b0007509da2a58ca.png
https://i-blog.csdnimg.cn/direct/84c113547f0046fb9f3cf3c431d9529e.png
自定义一个名称,我这里统一命名规范为 icon_****** ,然后Next -> Finish

然后我们把创建的 icon 资源文件加入到我们的 bottom_menu.xml 文件中

 
步调二:

        然后我们便必要转到我们的  activity_main.xml 文件中加入如下布局代码:
(稍后我会解释此中关键代码的涵义)
<com.google.android.material.bottomnavigation.BottomNavigationView
      android:id="@+id/bottom_menu"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:background="@drawable/bottom_background"
      app:labelVisibilityMode="labeled"
      app:itemIconTint="@color/selected_color"
      app:itemTextColor="@color/selected_color"
      app:itemRippleColor="@android:color/transparent"
      app:layout_constraintBottom_toBottomOf="parent"
      app:layout_constraintEnd_toEndOf="parent"
      app:layout_constraintStart_toStartOf="parent"
      app:menu="@menu/bottom_menu" /> 关键代码解释:
        (1)app:labelVisibilityMode="labeled" ,这个代码意思是让我们未选中时也显示我们的 label或者 title,为什么要添加这个呢?由于我们 Android 开发计划规范导致的,当我们在 menu 中定义的 <item> 数目大于 3 个时,系统会默认取消显示 label 或者 title ,而这种肯定不利于我们用户操纵,所以我们加入这个代码让底部导航栏其他未被选择的也显示 label或者 title
大家也可以试着看看当没有这个代码会出现什么情况  ~^<^~

        (2) android:background="@drawable/bottom_background",这个资源文件的代码如下:
(它的创建过程我就不展示了,比较简朴,假如着实不会,请实时接洽我) ~^<^~
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#fff"></solid>
    <corners android:radius="5dp"></corners>
</shape> (3)这里大家对于这两个资源文件可能会有疑问:
app:itemIconTint="@color/selected_color"
app:itemTextColor="@color/selected_color"
不要慌,作者肯定是会告诉你的,但是我得先来告诉你这个代码的作用,它们俩实现的就是自定义选中和未选中的颜色,第一行是 icon 的,第二行是 title 的;


步调三:

        接下来我们便要来实现我们的自定义选中和未选中的颜色功能了,这个功能是比较实用的,由于它所实现的效果可以给我们的用户带来精良的app体验
(1)首先我们要创建一个新的资源文件夹,由于我们必要用到这个资源文件中的一些属性和方法:res -> New -> Android Resource Directory 

https://i-blog.csdnimg.cn/direct/25197e6312a6488096257cd621dfd343.png
(2) 在Resource type 下选择color,并点击OK

https://i-blog.csdnimg.cn/direct/3a66ef1903374ca382f1ce1429a47fd0.png
(3)color -> New -> Color Resource File

https://i-blog.csdnimg.cn/direct/274ad997504b4dbdb81db7c95c9e56da.png
 (4) 命名为 selected_color (这个根据个人习惯自行命名就行,不外得注意后续引用资源文件时要注意名称)点击OK

https://i-blog.csdnimg.cn/direct/4e524be5716a488c950db401895d7b14.png
(5) 末了在 selected_color.xml 文件中加入如下代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#666" android:state_checked="true"/>
    <item android:color="#bbb" android:state_checked="false"/>
</selector> 如许我们便实现了自定义选中和未选中的颜色功能了
好的,本期分享到这里就结束了,假如你喜欢作者,请为作品点个赞,加个关注哦

作者热衷于分享,假如你对于这篇文章的内容有不明确的地方,请关注并私信作者,我肯定会实时答复你的  ~^<^~

对于这篇文章,假如要借用,请记得标明出处,支持原创哦!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Android Studio 基于Menu和BottomNavigationView实现底部导航栏,并实现自