BottomBar之Android底部菜单

前言:开源项目BottomBar,实现Android底部菜单(常用菜单,BottomBar实现动画(上下式)+消息菜单,BottomBar+ViewPager+Fragment实现炫酷的底部导航效果)

效果:

开发环境:AndroidStudio2.2.1+gradle-2.14.1

引入依赖:

  compile 'com.android.support:appcompat-v7:23.0.0'  compile 'com.android.support:design:23.+'  compile 'com.roughike:bottom-bar:1.3.+'

部分代码:

public class Menu1Activity extends AppCompatActivity {private BottomBar mBottomBar;private MainFragment mMainFragment;private TwoFragment twoFragment;private ThreeFragment threeFragment;private FourFragment fourFragment;private FragmentTransaction transaction;private BottomBarBadge unreadMessages;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_menu);mBottomBar = BottomBar.attach(this, savedInstanceState);// 千万注意:这个方法要用在 setItemsFromMenu 之前,也就是tab还没有设置之前要先调用,不然会报错。
        mBottomBar.noTabletGoodness();//添加初始FragmentdefaultFragment(null == mMainFragment ? mMainFragment = MainFragment.newInstance() : mMainFragment);mBottomBar.setItems(R.menu.bottombar_menu);mBottomBar.setOnMenuTabClickListener(new OnMenuTabClickListener() {@Overridepublic void onMenuTabSelected(@IdRes int menuItemId) {//单击事件 menuItemId 是 R.menu.bottombar_menu 中 item 的 idswitch (menuItemId) {case R.id.bb_menu_main:if (null == mMainFragment) {mMainFragment = MainFragment.newInstance();}replaceFragment(mMainFragment);break;case R.id.bb_menu_chart:if (null == twoFragment) {twoFragment = TwoFragment.newInstance();}replaceFragment(twoFragment);unreadMessages.setVisibility(View.GONE);break;case R.id.bb_menu_timeline:if (null == threeFragment) {threeFragment = ThreeFragment.newInstance();}replaceFragment(threeFragment);break;case R.id.bb_menu_about:if (null == fourFragment) {fourFragment = FourFragment.newInstance();}replaceFragment(fourFragment);break;default:break;}}@Overridepublic void onMenuTabReSelected(@IdRes int menuItemId) {//重选事件,当前已经选择了这个,又点了这个tab。微博点击首页刷新页面
            }});// 当点击不同按钮的时候,设置不同的颜色// 可以用以下三种方式来设置颜色.mBottomBar.mapColorForTab(0, ContextCompat.getColor(this, R.color.colorPrimary));mBottomBar.mapColorForTab(1, ContextCompat.getColor(this, R.color.colorAccent));mBottomBar.mapColorForTab(2, ContextCompat.getColor(this, R.color.green));mBottomBar.mapColorForTab(3, ContextCompat.getColor(this, R.color.orange));setMsg();}@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);//保存BottomBar的状态
        mBottomBar.onSaveInstanceState(outState);}private void replaceFragment(Fragment fragment) {FragmentManager fm = getSupportFragmentManager();transaction = fm.beginTransaction();transaction.replace(R.id.main_fragment_layout, fragment);
//        transaction.hide();
        transaction.commit();}private void defaultFragment(Fragment fragment) {FragmentManager fm = getSupportFragmentManager();transaction = fm.beginTransaction();transaction.add(R.id.main_fragment_layout, fragment);transaction.commit();}private void setMsg() {// 为tab设置一个标签,“信息”提示的数字// 参数分别是:第几个tab;小圆圈的颜色;显示的数字unreadMessages = mBottomBar.makeBadgeForTabAt(1, "#FF0000", 13);// 设置显示或隐藏
        unreadMessages.show();
//        unreadMessages.hide();// 设置显示的数字unreadMessages.setCount(4);// 设置显示/消失动画的延迟时间unreadMessages.setAnimationDuration(200);// 如果不点它,它一直显示unreadMessages.setAutoShowAfterUnSelection(true);}

源码下载...

转载于:https://www.cnblogs.com/xxdh/p/6653653.html

BottomBar之Android底部菜单相关推荐

  1. [Android] 底部菜单布局+PopupWindows实现弹出菜单功能(初级篇)

        这篇文章主要是自己研究如何对底部菜单进行布局,并简单的实现点击不同"按钮"实现图片切换和背景切换的功能,最后通过PopupWindows实现弹出菜单,点击不同按钮能实现不同 ...

  2. android 底部菜单

    2019独角兽企业重金招聘Python工程师标准>>> 新浪微薄上的一个底部菜单的实现,有兴趣的 可以看一下 转载:http://www.adobex.com/android/sou ...

  3. Android应用主界面底部菜单实现

    介绍 现在绝大多数主流的应用主界面,都会包含一个底部菜单,就拿腾讯的QQ与微信来说,看起来是这样的  <---我是底部菜单 原理 在很久以前,可以通过TabActivity实现相关功能,自从Fr ...

  4. Android自定义TabActivity(实现仿新浪微博底部菜单更新UI)

    如今Android上很多应用都采用底部菜单控制更新的UI这种框架,例如新浪微博 点击底部菜单的选项可以更新界面.底部菜单可以使用TabHost来实现,不过用过TabHost的人都知道自定义TabHos ...

  5. Android自己定义TabActivity(实现仿新浪微博底部菜单更新UI)

    现在Android上非常多应用都採用底部菜单控制更新的UI这样的框架,比如新浪微博 点击底部菜单的选项能够更新界面.底部菜单能够使用TabHost来实现,只是用过TabHost的人都知道自己定义Tab ...

  6. android让组件贴着顶部,Android中底部菜单被输入法顶上去的解决方案

    安卓手机输入法弹出,消失会触发 window.onresize事件,我们一般的解决方法是获取焦点,底部隐藏,失去焦点,底部菜单出现,但是,有些人会点击这个按钮收起键牌 那么,这个时候你的失去焦点无效, ...

  7. android paopao窗口+gridview 的实现底部菜单

    PopupWindow是一个可以显示在当前Activity之上的浮动容器,PopupWindow弹出的位置是能够改变的,按照有无偏移量,可以分为无偏移和有便宜两种:按照参照对象的不同又可以分为两种:相 ...

  8. Android仿QQ空间底部菜单

    之前曾经在网上看到Android仿QQ空间底部菜单的Demo,发现这个Demo有很多Bug,布局用了很多神秘数字.于是研究了一下QQ空间底部菜单的实现,自己写了一个,供大家参考.效果如下图所示:  点 ...

  9. Android 实现QQ聊天底部+号显示底部菜单

    今天项目需要加一个类似QQ聊天界面,点击+号弹出底部菜单选项.我以为网上有例子,百度了下,不尽人意.所以我就自己实现了一下,这里作为记录,方便以后查看,也给需要的童鞋一个例子. 初始页面 点击加号 点 ...

  10. 替代TabActivity,底部菜单主框架搭建

    看到还有些人在使用TabActvity,这个已经被Google废弃了的类,为了大家方便,写了一个能代替TabActivity的东西.说白了也就是对viewpager跟底部菜单进行了一个封装,标准的底部 ...

最新文章

  1. java中action请求_java模拟js发送action请求
  2. D3.js可视化库入门视频教程
  3. Angular系列学习二:基本的组件说明、自定义组件和部分细节说明
  4. 包(package)
  5. 【大数据风控体系】理想大数据风控体系
  6. pat天梯赛L1-051. 打折
  7. linux 工具 SecureCRT 使用 rz 和 sz 命令
  8. nano编辑器使用教程
  9. 活动推荐 | AWS 技术峰会,AI分论坛集齐各路业界大牛,免费开放参与
  10. 英语 —— 辅音浊化
  11. 显示器的bit是什么意思,8bit和10bit到底谁好
  12. 静候Google I/O 2014大会开幕
  13. Vue中href属性动态拼接
  14. 一、26个字母的读音和发音
  15. excel计算结果总是为0
  16. 个人电脑网站的创建与发布
  17. linux服务器杀毒软件命令,悬镜Linux服务器卫士-木马查杀详解
  18. Automated defect inspection system for metal surfaces based on deep learning and data augmentation
  19. 了解return的用法
  20. 如何打造主题公园夜游经济

热门文章

  1. 编译imsdroid,折腾了半天,还是弃用了Android Studio,换用Eclipse
  2. 手机拍照普及,相机依然拥有不可替代的优势
  3. UBUNTU启动到BusyBox,怎么办?
  4. 管理感悟:独当一面,很难
  5. qpieslice 渐变效果_在IE9中使用CSS3 PIE的线性渐变不起作用,IE8可以
  6. php和app关系,php在app开发中的应用
  7. Python 使用pyecharts生成echarts图像
  8. dual mysql 获取序列_FASTJSON反序列化和构造函数之间的一点小秘密
  9. 关于boot.ini文件里的/noexecute=optin
  10. 关于预编译和宏定义部分说明