文档章节

Android中底部导航栏的一种写法

y
 yangjianliu
发布于 2016/07/27 10:45
字数 307
阅读 39
收藏 0
  1. 在project下的build.grade中添加依赖 compile 'com.ashokvarma.android:bottom-navigation-bar:0.9.5' 2.在主布局文件中加入代码 <LinearLayout android:id="@+id/tb" android:layout_below="@id/title" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" />

    <!--利用BottomNavigationBar来显示导航栏-->

    <com.ashokvarma.bottomnavigation.BottomNavigationBar android:id="@+id/bottom_navigation_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true"/> 3.在主Activity中的onCreate方法中添加如下逻辑 bottomNavigationBar = (BottomNavigationBar) findViewById(R.id.bottom_navigation_bar); bottomNavigationBar .addItem(new BottomNavigationItem(R.mipmap.main_nav_home, "主页").setActiveColor(R.color.colorTheme)) .addItem(new BottomNavigationItem(R.mipmap.main_nav_water, "水").setActiveColor(R.color.colorTheme)) .addItem(new BottomNavigationItem(R.mipmap.main_nav_electric, "电").setActiveColor(R.color.colorTheme)) .addItem(new BottomNavigationItem(R.mipmap.main_nav_gas, "燃气").setActiveColor(R.color.colorTheme)) .addItem(new BottomNavigationItem(R.mipmap.main_nav_heat, "热力").setActiveColor(R.color.colorTheme)) .setFirstSelectedPosition(lastSelectedPosition) .initialise(); bottomNavigationBar.setTabSelectedListener(this); setDefaultFragment(); 4.在主Activity中添加如下方法 /**

    • 设置默认的 */ private void setDefaultFragment() { FragmentManager fm = getFragmentManager(); FragmentTransaction transaction = fm.beginTransaction(); mHomeFragment = HomeFragment.newInstance(); transaction.replace(R.id.tb, mHomeFragment); transaction.commit(); }

    @Override public void onTabSelected(int position) { Log.d(TAG, "onTabSelected() called with: " + "position = [" + position + "]"); FragmentManager fm = this.getFragmentManager(); //开启事务 FragmentTransaction transaction = fm.beginTransaction(); switch (position) { case 0: if (mHomeFragment == null) { mHomeFragment = HomeFragment.newInstance(); } transaction.replace(R.id.tb, mHomeFragment); break; case 1: if (mWaterFragment == null) { mWaterFragment = WaterFragment.newInstance(); } transaction.replace(R.id.tb, mWaterFragment); break; case 2: if (mElectricFragment == null) { mElectricFragment = ElectricFragment.newInstance(); } transaction.replace(R.id.tb, mElectricFragment); break; case 3: if (mGasFragment == null) { mGasFragment = GasFragment.newInstance(); } transaction.replace(R.id.tb, mGasFragment); break; case 4: if (mHeatFragment == null) { mHeatFragment = HeatFragment.newInstance(); } transaction.replace(R.id.tb, mHeatFragment); break; default: break; } // 事务提交 transaction.commit(); }

    @Override public void onTabUnselected(int position) { Log.d(TAG, "onTabUnselected() called with: " + "position = [" + position + "]"); }

    @Override public void onTabReselected(int position) {

    } 5.创建几个Fragment(这里就不写了,随便创建都行)

© 著作权归作者所有

共有 人打赏支持
y
粉丝 0
博文 19
码字总数 52825
作品 0
成都
私信 提问
React Navigation

https://reactnavigation.org/docs/intro/nesting 官网 http://blog.csdn.net/u013718120/article/details/72357698 http://www.jianshu.com/p/2f575cc35780 这里只是基本用法,高级详情用法......

Chason-洪
2017/11/15
0
0
Android交流会-碎片Fragment,闲聊单位与尺寸

女孩:又周末了哦~ 男孩:那么今日来开个交流会,我们也学一学人家高大尚的大会,自己开一个,广州站,Android开发攻城狮交流会~ 1.Fragment概要: Android从3.0开始引入了Fragment的概念,中...

达叔小生
07/28
0
0
Android项目-几种常见的应用架构

android两种Tab分页的方式:TabActivity和ActivityGroup http://www.apkbus.com/blog-70574-40942.html 1、单个Activity架构(推荐) 首页是Activity,里面页面为View 头部底部栏都是公用的,...

刘遇安
2014/08/28
0
0
Android开发优化之——对界面UI的优化(2)

在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件。一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局。如果我们...

KingMing
2015/04/03
0
0
怎么计算底部导航栏的高度

android 中,计算各种高度,一般是按照下面的图来计算的,有些手机(比如华为手机)在屏幕底部有个导航栏(包括返回键和home键), 我想问下,这个底部导航栏该如何计算高度? 我们一般获取屏...

天王盖地虎626
2016/10/11
430
1

没有更多内容

加载失败,请刷新页面

加载更多

Java面试题:面向对象,类加载器,JDBC, Spring 基础概念

1. 为什么说Java是一门平台无关语言? 平台无关实际的含义是“一次编写到处运行”。Java 能够做到是因为它的字节码(byte code)可以运行在任何操作系统上,与底层系统无关。 2. 为什么 Java...

Java干货分享
15分钟前
0
0
LeetCode算法题-Range Sum Query Immutable(Java实现)

01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第70题(顺位题号是303)。给定整数数组nums,找到索引i和j(i≤j)之间的元素之和,包括端点。例如: 给定nums = [-2,0,3,-5,2,-1] s...

qwergkp
20分钟前
0
0
慎用延时初始化(71)

延迟初始化是延时到需要域的值的时候才进行初始化 如果不需要,永远不初始化 既适用于静态域、也适用于实例域 延时初始化是一种优化 除非绝对必要,请尽量不要使用 降低了初始化开销、增加了...

Java搬砖工程师
20分钟前
1
0
中介者模式 调停者 Mediator 行为型 设计模式(二十一)

  用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散      而且可以独立地改变它们之间的交互。      中介者模式又称为调停...

SEOwhywhy
31分钟前
4
0
大数据Spark优化读取Hbase--region 提高并行数过程详细解析

一. Hbase 的 region 我们先简单介绍下 Hbase 的 架构和 region : 从物理集群的角度看,Hbase 集群中,由一个 Hmaster 管理多个 HRegionServer,其中每个 HRegionServer 都对应一台物理机器...

金铭鼎IT教育
31分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部