快捷搜索:  汽车  科技

android移动应用基础(安卓干货铺-Android底部导航总结)

android移动应用基础(安卓干货铺-Android底部导航总结)先上效果图:一.BottomNavigationBar viewPagerLinearLayout TextViewcheckBox这里只讲解前三种实现方式。

android移动应用基础(安卓干货铺-Android底部导航总结)(1)

底部导航方式

  • BottomNavigationBar

  • TabLayout

  • RadioGroup

  • LinearLayout TextView

  • checkBox

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


一.BottomNavigationBar viewPager

先上效果图:

android移动应用基础(安卓干货铺-Android底部导航总结)(2)

  • 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 属性的:

    android移动应用基础(安卓干货铺-Android底部导航总结)(3)

    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

    android移动应用基础(安卓干货铺-Android底部导航总结)(4)

    核心代码:

    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。一般不会用在底部导航,这里只是总结这种方式。

    android移动应用基础(安卓干货铺-Android底部导航总结)(5)

    代码就不贴出来了,如果有疑问直接关注私信我!


    猜您喜欢: