返回顶部
首页 > 资讯 > 精选 >Android开发怎么快速实现底部导航栏
  • 902
分享到

Android开发怎么快速实现底部导航栏

2023-06-30 10:06:41 902人浏览 薄情痞子
摘要

这篇文章主要介绍“Android开发怎么快速实现底部导航栏”,在日常操作中,相信很多人在Android开发怎么快速实现底部导航栏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android开发怎么快速实现底部

这篇文章主要介绍“Android开发怎么快速实现底部导航栏”,在日常操作中,相信很多人在Android开发怎么快速实现底部导航栏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android开发怎么快速实现底部导航栏”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Tint 着色器

优点:去除“无用”图片,节省空间

配合BottomNavigationView,实现一个快速,简洁的Tab栏

传统做法:Tab 切换,字体变色、图片变色。至少给我提供八张图,四张默认,四张选中,然后通过 selector 文件设置

现在BottomNavigationView只需四张图!!!

Android开发怎么快速实现底部导航栏

Android开发怎么快速实现底部导航栏

依赖(AndroidX)

implementation 'com.Google.android.material:material:1.1.0-alpha01'

布局

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="Http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@color/white"    tools:context=".MainActivity">    <FrameLayout        android:id="@+id/fLayout"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_above="@+id/nav_bottom_menu"        android:background="@color/bg" />    <View        android:layout_width="match_parent"        android:layout_height="0.5dp"        android:layout_above="@+id/nav_bottom_menu"        android:background="#FFE1E0E0" />    <com.google.android.material.bottomnavigation.BottomNavigationView        android:id="@+id/nav_bottom_menu"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        app:itemBackground="@null"        app:itemIconTint="@color/tint_selector_menu_color"        app:itemTextColor="@color/tint_selector_menu_color"        app:labelVisibilityMode="labeled"        app:menu="@menu/nav_bottom_menu" />    <com.makeramen.roundedimageview.RoundedImageView        android:layout_width="55dp"        android:layout_height="55dp"        android:layout_alignParentBottom="true"        android:layout_centerInParent="true"        android:layout_marginBottom="12dp"        android:src="@drawable/ic_log"        app:riv_corner_radius="200dp" /></RelativeLayout>

编写渲染颜色选择器-tint_selector_menu_color

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:color="@color/orange" android:state_checked="true" />    <item android:color="@color/black" /></selector>

menu 文件中 icon-nav_bottom_menu

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android">    <item        android:id="@+id/iv_home"        android:icon="@drawable/iv_home"        android:title="首页" />    <item        android:id="@+id/iv_wechat"        android:icon="@drawable/iv_wechat"        android:title="视频" />    <item        android:id="@+id/riv_script"        android:icon="@null"        android:title="@null" />    <item        android:id="@+id/iv_pipi"        android:icon="@drawable/iv_pipi"        android:title="电影" />    <item        android:id="@+id/iv_mine"        android:icon="@drawable/iv_mine"        android:title="我的" /></menu>

BottomNavigationView的点击事件

这里配合Fragmen

        //navBottomMenu.setItemIconTintList(null);         navBottomMenu.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {            @Override            public boolean onNavigationItemSelected(@NonNull MenuItem item) {                switch (item.getItemId()) {                    case R.id.iv_home: {                        FragmentManager.startFragmentHome(Fragment_A.class);                        return true;                    }                    case R.id.iv_wechat: {                        FragmentManager.startFragmentHome(Fragment_B.class);                        return true;                    }                    case R.id.iv_pipi: {                        FragmentManager.startFragmentHome(Fragment_C.class);                        return true;                    }                    case R.id.iv_mine: {                        FragmentManager.startFragmentHome(Fragment_D.class);                        return true;                    }                    default:                        break;                }                return false;            }        });

配合ViewPager实现Tab栏

     viewPager.setOffscreenPageLimit(4); // ViewPager 滑动事件监听        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int i, float v, int i1) {            }            @Override            public void onPageSelected(int i) {            //这里我做了中间凹凸按钮,所以要特别处理以下            //如果没有我这种情况的,直接加上这个  navBottomMenu.getMenu().getItem(i).setChecked(true); 就不用再加switch语句了                switch (i) {                    case 0:                        //将滑动到的页面对应的 menu 设置为选中状态                        navBottomMenu.getMenu().getItem(i).setChecked(true);                        break;                    case 1:                        //将滑动到的页面对应的 menu 设置为选中状态                        navBottomMenu.getMenu().getItem(i).setChecked(true);                        break;                    case 2:                    case 3:                        //将滑动到的页面对应的 menu 设置为选中状态                        navBottomMenu.getMenu().getItem(i + 1).setChecked(true);                        break;                    default:                        break;                }            }            @Override            public void onPageScrollStateChanged(int i) {            }        });    }

对应的适配器

(仅供参考,大家也可以去参考以下别人写的代码)

public class FragPagerAdapter extends FragmentPagerAdapter {    private List<Fragment> fragmentList;    public FragPagerAdapter(@NonNull FragmentManager fm, List<Fragment> fragmentList) {        super(fm);        this.fragmentList = fragmentList;    }    @Override    public Fragment getItem(int position) {        return fragmentList.get(position);    }    @Override    public int getCount() {        return fragmentList.size();    }}

到此,关于“Android开发怎么快速实现底部导航栏”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Android开发怎么快速实现底部导航栏

本文链接: https://lsjlt.com/news/328317.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android开发怎么快速实现底部导航栏
    这篇文章主要介绍“Android开发怎么快速实现底部导航栏”,在日常操作中,相信很多人在Android开发怎么快速实现底部导航栏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android开发怎么快速实现底部...
    99+
    2023-06-30
  • Android开发快速实现底部导航栏示例
    目录Tint 着色器依赖(AndroidX)布局编写渲染颜色选择器-tint_selector_menu_colormenu 文件中 icon-nav_bottom_menuBott...
    99+
    2024-04-02
  • Android Fragment实现顶部、底部导航栏
    前言 无论是顶部还是底部导航栏,都是大多数APP的标配,网络上的相关实现教程也非常之多。最近回忆起以前写的小项目,发现对这块内容有些遗忘,不妨就再整理一遍代码逻辑,记录下来,方便日后...
    99+
    2024-04-02
  • Android实现底部导航栏效果
    目前网上主流的文章都是用底部的 RadioGroup + 页面部分的 Fragment 实现导航栏切换页面效果的。 然而底部的 RadioGroup 是如此麻烦,每个按钮的图片和文字...
    99+
    2024-04-02
  • android实现简单底部导航栏
    本文实例为大家分享了android实现底部导航栏的具体代码,供大家参考,具体内容如下 常见的底部导航栏 动态效果 实现步骤 1.底部导航栏样式 我们应该在项目的res文件夹下新建...
    99+
    2024-04-02
  • Android使用RadioGroup实现底部导航栏
    RadioGroup实现底部导航栏效果,如图:: 实现可最基本的导航栏功能,不能左右滑动,只能点击内嵌的fragment的布局:<?xml version="1.0" encoding="utf-8"?>...
    99+
    2023-05-30
    radiogroup 导航栏 gr
  • flutter实现底部导航栏
    本文实例为大家分享了flutter实现底部导航栏的具体代码,供大家参考,具体内容如下 一.flutter底部导航栏常用组件BottomNavigationBar 属性介绍 Botto...
    99+
    2024-04-02
  • Android底部导航栏BottomNavigationView怎么用
    在Android中,可以使用BottomNavigationView来创建底部导航栏。 首先,在xml布局文件中添加BottomNa...
    99+
    2023-10-26
    Android
  • Android程序开发之Fragment实现底部导航栏实例代码
    流行的应用的导航一般分为两种,一种是底部导航,一种是侧边栏。 说明 IDE:AS,Android studio; 模拟器:genymotion; 实现的效果,见下图。 具体...
    99+
    2022-06-06
    fragment Android
  • android中Fragment+RadioButton实现底部导航栏
    在App中经常看到这样的tab底部导航栏 那么这种效果是如何实现,实现的方式有很多种,最常见的就是使用Fragment+RadioButton去实现。下面我们来写一个例子 首...
    99+
    2022-06-06
    radiobutton fragment Android
  • Android实现底部导航栏方法(Navigation篇)
    Navigation实现底部导航栏 前言导入和基本使用导入基础使用创建nav文件编辑Nav文件添加页面(代码版)添加页面(图解版) 创建导航动作 action创建action(代码版)...
    99+
    2023-10-10
    android
  • ANDROID BottomNavigationBar底部导航栏的实现示例
    第一种介绍的就是使用开源库,因为使用开源库最简单,也更加的符合我们的审美标准,同时BottomNavigationBar还是符合当前的Material Design标准的。效果展示依赖compile'com.ashokvarma.andro...
    99+
    2023-05-30
    android bottomnavigationbar ott
  • FragmentTabHost FrameLayout实现底部导航栏
    app经常用到底部导航栏,早前使用过RadioGroup+FrameLayout实现或者RadioGroup+ViewPager实现,现在基本使用FragmentTabHost+FrameLayout来实现,因为使用起来简单易用。下面写一个...
    99+
    2023-05-31
    fragmenttabhost framelayout 导航栏
  • Flutter实现底部和顶部导航栏
    Flutter底部和顶部导航栏的实现,供大家参考,具体内容如下 带文字图标的底部导航栏(使用BottomNavigationBar和BottomNavigationBarItem)来...
    99+
    2024-04-02
  • Android实现底部导航栏功能(选项卡)
    现在很多android的应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同的页面,现在我采用TabHost组件来自定义一个底部的导航栏的功能。 我们先看下该d...
    99+
    2022-06-06
    选项卡 Android
  • flutter实现底部导航栏切换
    本文实例为大家分享了flutter实现底部导航栏切换的具体代码,供大家参考,具体内容如下 思路:MaterialApp是提供了bottomnavigationbar的,可以使用,这个...
    99+
    2024-04-02
  • android : 底部导航栏的实现(使用ViewPager和BottomNavigationView)
      本案例中需要用的控件ViewPager和BottomNavigationView ViewPager:主要是页面的切换Fragment:碎片(也就是每个页面的内容)BottomNavigationView:底部导航栏 非常简单,主要就...
    99+
    2023-09-01
    android android studio ide
  • flutter实现底部不规则导航栏
    本文实例为大家分享了flutter实现底部不规则导航栏的具体代码,供大家参考,具体内容如下 scafford的bottomNavigationBar参数赋值BottomAppBar可...
    99+
    2024-04-02
  • CSS怎么固定底部导航栏
    本文小编为大家详细介绍“CSS怎么固定底部导航栏”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS怎么固定底部导航栏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先,在页面中创建一个导航栏;<!DOC...
    99+
    2023-07-04
  • Android中TabLayout+ViewPager 简单实现app底部Tab导航栏
    前言在谷歌发布Android Design Support Library之前,app底部tab布局的实现方法就有很多种,其中有RadioGroup+FrameLayout、TabHost+Fragment、FragmentPagerAda...
    99+
    2023-05-31
    android tablayout age
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作