`
安卓干货铺
  • 浏览: 36089 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Android底部导航总结

阅读更多

 

底部导航方式

  • BottomNavigationBar

  • TabLayout

  • RadioGroup

  • LinearLayout + TextView

  • checkBox

这里只讲解前三种实现方式。

 

 

一.BottomNavigationBar+viewPager

 

先上效果图:

 

 

1.使用方法:

BottomNavigationBar源码下载地址:

https://github.com/Ashok-Varma/BottomNavigation

(1).添加依赖

compile 'com.ashokvarma.android:bottom-navigation-bar:2.0.2'

(2).布局

 <android.support.v4.view.ViewPager        android:id="@+id/viewPager"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1"></android.support.v4.view.ViewPager> <com.ashokvarma.bottomnavigation.BottomNavigationBar    android:id="@+id/bottom_navigation_bar"    android:layout_gravity="bottom"    android:layout_alignParentBottom="true"    android:layout_width="match_parent"    android:layout_height="wrap_content"></com.ashokvarma.bottomnavigation.BottomNavigationBar>

(3).主要代码

 bottom_navigation_bar.setMode(BottomNavigationBar.MODE_SHIFTING)                .setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE); //        bottom_navigation_bar //值得一提,模式跟背景的设置都要在添加tab前面,不然不会有效果。 //                .setActiveColor("#ffffff")//选中颜色 图标和文字 //                .setInActiveColor("#8e8e8e")//默认未选择颜色 //                .setBarBackgroundColor("#00796B");//默认背景色        bottom_navigation_bar                .addItem(new BottomNavigationItem(R.mipmap.ic_favorite_white_24dp,"Like").setActiveColorResource(R.color.orange))                .addItem(new BottomNavigationItem(R.mipmap.ic_home_white_24dp,"Home").setActiveColorResource(R.color.teal))                .addItem(new BottomNavigationItem(R.mipmap.ic_music_note_white_24dp,"Music").setActiveColorResource(R.color.blue))                .addItem(new BottomNavigationItem(R.mipmap.ic_tv_white_24dp,"TV").setActiveColorResource(R.color.brown))  .setFirstSelectedPosition(0)//设置默认选择的按钮                .initialise();//所有的设置需在调用该方法前完成        viewPager.setCurrentItem(0);        bottom_navigation_bar //设置lab点击事件                .setTabSelectedListener(new BottomNavigationBar.OnTabSelectedListener() {                    @Override                    public void onTabSelected(int position) {                        viewPager.setCurrentItem(position);                    }                    @Override                    public void onTabUnselected(int position) {                    }                    @Override                    public void onTabReselected(int position) {                    }                });

2.部分属性解析

Mode属性:

对应的代码为:

bottom_navigation_bar.setMode(BottomNavigationBar.MODE_SHIFTING);

这个属性有两种可选的值,MODE_FIXEDMODE_SHIFTING

  • MODE_FIXED:选中的Item会稍大于未选中的Item,无论Item是否选中,都会显示文字和图标。 

  • MODE_SHIFTING:选中的Item明显大于未选中的Item,未选中的Item只显示图标

上面的效果图就是MODE_SHIFTING的效果,被选中的item明显扩大,至于MODE_FIXED属性我就不做演示了。

 

BackgroundStyle属性:

对应的代码为:

 

bottom_navigation_bar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE);

这个属性有两个可选的值: 

  • BACKGROUND_STYLE_RIPPLE 

  • BACKGROUND_STYLE_STATIC 

上面的效果图是BackgroundStyle的属性是BACKGROUND_STYLE_RIPPLE ,下面展示的是BACKGROUND_STYLE_STATIC 属性的:

 

 

Item角标设置

通过BottomNavigationItem的setBadgeItem方法,可以给每个Item设置一个独立的角标,对于角标支持设置它的背景、文案、文案颜色以及在选中时是否隐藏角标:

 

BadgeItem badgeItem = new BadgeItem()            
    .setBackgroundColorResource(android.R.color.holo_red_dark) //设置角标背景色                
     .setText("5") //设置角标的文字                
     .setTextColorResource(android.R.color.white) //设置角标文字颜色      .setHideOnSelect(true); //在选中时是否隐藏角标 mBottomNavigationBar.addItem(new BottomNavigationItem(R.drawable.ic_5, "Item 5")           .setActiveColorResource(android.R.color.holo_orange_dark)    
     .setBadgeItem(badgeItem));

其他属性

               .setActiveColor("#ffffff")//选中颜色 图标和文字                .setInActiveColor("#8e8e8e")//默认未选择颜色                .setBarBackgroundColor("#00796B");//默认背景色                .setFirstSelectedPosition(0)//设置默认选择的按钮                .initialise();//所有的设置需在调用该方法前完成

还有一些其他的属性,这里就不一一列出了。

 

二.RadioGroup+ViewPager

 

核心代码:

 

radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {    @Override    public void onCheckedChanged(RadioGroup group, int checkedId) {        switch (checkedId){            case R.id.rb_Monitor:                viewPager.setCurrentItem(0);                break;            case R.id.rb_Notice:                viewPager.setCurrentItem(1);                break;            case R.id.rb_line:                viewPager.setCurrentItem(2);                break;            case R.id.rb_date:                viewPager.setCurrentItem(3);                break;        }    } }); radioGroup.check(R.id.rb_Monitor);

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {    @Override    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {    }    @Override    public void onPageSelected(int position) {      switch (position){          case 0:              radioGroup.check(R.id.rb_Monitor);              break;          case 1:              radioGroup.check(R.id.rb_Notice);              break;          case 2:              radioGroup.check(R.id.rb_line);              break;          case 3:              radioGroup.check(R.id.rb_date);              break;      }    }

 

三.TabLayout+viewPager

 

TabLayout相信大家都很清楚吧,TabLayout提供了一个水平的布局用来展示Tabs。一般不会用在底部导航,这里只是总结这种方式。

效果图如下:

 

 

代码就不贴出来了,如果有疑问直接留言或者加我微信!

这几天正在整体其他资源一起上传到Github,如果急需源码的话直接去CSDN下载:

http://download.csdn.net/download/qq_34908107/10011208

 

0
0
分享到:
评论

相关推荐

    Android 实现底部导航中间菜单凸起效果

    总结一下,实现Android底部导航中间菜单凸起效果主要包括以下步骤: 1. 创建`BottomNavigationView`并设置相关属性。 2. 设计自定义的背景选择器,以实现凸起效果。 3. 使用`ObjectAnimator`添加动画效果,使凸起...

    android 底部导航栏

    总结,"android 底部导航栏"项目涵盖了如何在Android应用中使用标准库或自定义方法来实现底部导航功能。这不仅涉及UI组件的使用,还涉及到用户交互逻辑和内容区域的动态更新。在实际开发中,开发者需要考虑用户体验...

    android底部菜单中间部分凸起

    总结来说,"android底部菜单中间部分凸起"是通过自定义样式和选中事件监听来实现的,而"微信底部带数目显示菜单"则是通过自定义菜单项视图或者使用BadgeView来完成的。这两个特性都是为了提升用户体验,提供清晰的...

    Android底部导航栏LinearLayout版

    在Android应用开发中,底部导航栏(Bottom Navigation Bar)是一种常见的UI设计,用于在多个主要功能之间提供平滑的切换。本主题将专注于使用LinearLayout来实现这一功能,LinearLayout是Android布局系统中的一个...

    基于QT的底部导航栏

    总结起来,基于QT的底部导航栏利用QML的强大功能,通过声明式编程实现,提供了高效且灵活的用户界面设计。通过理解QML的基本组件和信号绑定机制,开发者可以轻松地构建出类似微信那样的多页面底部导航功能,提高应用...

    android底部导航

    总结,"android底部导航"是一个涉及用户界面设计、组件使用、自定义开发和适配策略的广泛话题。通过理解`BottomNavigationView`的工作原理,学习如何自定义和封装导航栏,以及掌握动态控制样式和多页面管理,开发者...

    Android底部导航栏

    总结一下,实现一个具有点击时改变图标字体颜色功能的Android底部导航栏,主要步骤包括:1) 在布局文件中添加BottomNavigationView;2) 创建菜单资源文件定义导航项;3) 在Activity中设置监听器,并根据用户选择更新...

    仿微信底部导航栏

    总结,仿微信底部导航栏的实现涉及UI设计、事件监听和页面切换等多个方面。通过封装工具类,可以提高代码复用性和项目维护性。在Android中,我们可以使用`BottomNavigationView`结合`FragmentManager`来实现;在iOS...

    android顶部和底部导航栏

    总结一下,Android顶部和底部导航栏的设计和实现涉及到`Toolbar`和`BottomNavigationView`组件的使用,以及菜单项的定义和事件处理。它们是构建用户友好的多页应用的关键组件,开发者可以通过自定义和扩展来满足各种...

    Android TabLayout 底部导航

    总结,Android TabLayout是实现底部导航栏的一种有效方式,结合ViewPager可以轻松地管理多个页面。通过本文的步骤,你应该已经了解了如何在Android Studio中集成和使用TabLayout。在实际开发中,可以根据项目需求...

    Android 底部导航栏 BottomNavigationBar的简单使用

    总结起来,实现Android底部导航栏BottomNavigationBar的简单使用,主要包括以下几个步骤: 1. 引入Material Design库 2. 在布局文件中添加BottomNavigationView组件 3. 创建菜单资源文件定义导航选项 4. 在Activity...

    android 底部弹出菜单(带透明背景)

    总结,创建一个带有透明背景的Android底部弹出菜单主要涉及以下几个步骤: 1. 设计菜单布局。 2. 实例化`PopupWindow`并设置透明背景。 3. 将`PopupWindow`显示在指定位置。 4. 绑定点击事件处理逻辑。 通过以上...

    TabHost加载Activity及自定义底部导航栏的实现

    总结,TabHost加载Activity和自定义底部导航栏是Android开发中常见的界面设计模式。通过合理的配置和事件处理,可以构建出功能丰富的、用户体验良好的多页面应用。同时,自定义底部导航栏不仅可以增强应用的视觉效果...

    Android开发丶底部导航栏的主界面实现

    总结来说,"Android开发丶底部导航栏的主界面实现"这个项目涵盖了Android UI设计中一个重要的部分,即如何创建一个功能完善的底部导航栏,实现与之相关的功能切换和交互。通过学习和实践这个示例,开发者可以提升在...

    关于学习Android简单实例,包含底部导航栏和recyclerView的嵌套使用

    总结起来,通过这个简单的Android实例,你将掌握如何使用`BottomNavigationView`和`ViewPager`构建底部导航栏,如何在`Fragment`中嵌套使用RecyclerView展示列表数据,以及如何实现点赞动画。这些都是Android开发中...

    Android Studio 底部自定义菜单

    1. 使用`BottomNavigationView`:这是Android Support Library提供的一个组件,可以轻松创建底部导航栏。在XML布局文件中添加`&lt;android.support.design.widget.BottomNavigationView&gt;`标签,然后在Java或Kotlin代码...

    Android底部Fragment Tab凸出效果Demo【附效果图和代码】

    总结,实现Android底部Fragment Tab凸出效果需要对Fragment、BottomNavigationView有深入的理解,并能够进行自定义布局和事件处理。这不仅可以提升应用的视觉效果,还能优化用户体验。通过学习和实践这个Demo,...

    android 菜单导航栏

    总结起来,"android 菜单导航栏"这个主题涵盖了Android应用开发中的底部导航栏设计,特别是卫星菜单这一独特设计模式。通过实践和学习此类资源,开发者可以提升自己的用户体验设计水平,同时掌握更多关于Fragment...

    Android底部导航

    总结起来,通过结合使用TabLayout、ViewPager和Fragment,我们可以轻松地在Android应用中实现底部导航功能。这一实现方式具有良好的可扩展性和灵活性,可以根据项目的具体需求进行定制,提供优秀的用户体验。在实际...

Global site tag (gtag.js) - Google Analytics