安卓 实现一个底部导航栏(新手笔记-2)
2018-02-28 17:15
375 查看
Google官方给了一种实现方法叫做——BottomNavigationBar,我们使用就可以了。
首先注入依赖(我用的Android Studio 可以直接使用Gradle惹),Gradle就和maven这些的差不多,你给出一个包,使用AS自动帮你下载了,找到build.gradle(Module:app),在dependencies中添加代码:compile 'com.ashokvarma.android:bottom-navigation-bar:1.4.1'然后写界面的layout:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<!--给上面的fragment占位置-->
<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</FrameLayout>
<!--这是一种分割线做法。。。觉得很神奇-->
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="@color/colorPrimary"/>
<com.ashokvarma.bottomnavigation.BottomNavigationBar
android:id="@+id/bottom_navigation_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>界面的Activity:public class MainActivity extends AppCompatActivity {
BottomNavigationBar bottomNavigationBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bottomNavigationBar = findViewById(R.id.bottom_navigation_bar);
//这是下面的一整个NavigationBar导航栏的设置
bottomNavigationBar
.setInActiveColor(R.color.green) //未选中状态颜色
.setActiveColor(R.color.blue) //选中状态颜色
.setMode(BottomNavigationBar.MODE_FIXED) //导航栏模式
.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC) //导航栏背景模式(图标的动画样式和这个有关系 变大了)
.addItem(new BottomNavigationItem(R.drawable.bottom_1, "first"/*选中的图片样式以及文字*/).setInactiveIconResource(R.drawable.ic_launcher_background)/*未选中时样式*/)
.addItem(new BottomNavigationItem(R.drawable.bottom_2, "second").setInactiveIconResource(R.drawable.ic_launcher_background))
.addItem(new BottomNavigationItem(R.drawable.bottom_3, "third").setInactiveIconResource(R.drawable.ic_launcher_background))
.setFirstSelectedPosition(0)//初始化之后第一个选中的位置
.initialise();
//给底部导航栏的各种点击事件进行设置监听器,实现各种功能
bottomNavigationBar.setTabSelectedListener(new BottomNavigationBar.OnTabSelectedListener() {
@Override
public void onTabSelected(int position) { //选中 -> 未选中
Toast.makeText(MainActivity.this, "You click " + position, Toast.LENGTH_SHORT).show() ;
}
@Override
public void onTabUnselected(int position) { //未选中 -> 选中
}
@Override
public void onTabReselected(int position) { //选中 -> 选中
}
});
}
}
首先注入依赖(我用的Android Studio 可以直接使用Gradle惹),Gradle就和maven这些的差不多,你给出一个包,使用AS自动帮你下载了,找到build.gradle(Module:app),在dependencies中添加代码:compile 'com.ashokvarma.android:bottom-navigation-bar:1.4.1'然后写界面的layout:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<!--给上面的fragment占位置-->
<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</FrameLayout>
<!--这是一种分割线做法。。。觉得很神奇-->
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="@color/colorPrimary"/>
<com.ashokvarma.bottomnavigation.BottomNavigationBar
android:id="@+id/bottom_navigation_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>界面的Activity:public class MainActivity extends AppCompatActivity {
BottomNavigationBar bottomNavigationBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bottomNavigationBar = findViewById(R.id.bottom_navigation_bar);
//这是下面的一整个NavigationBar导航栏的设置
bottomNavigationBar
.setInActiveColor(R.color.green) //未选中状态颜色
.setActiveColor(R.color.blue) //选中状态颜色
.setMode(BottomNavigationBar.MODE_FIXED) //导航栏模式
.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC) //导航栏背景模式(图标的动画样式和这个有关系 变大了)
.addItem(new BottomNavigationItem(R.drawable.bottom_1, "first"/*选中的图片样式以及文字*/).setInactiveIconResource(R.drawable.ic_launcher_background)/*未选中时样式*/)
.addItem(new BottomNavigationItem(R.drawable.bottom_2, "second").setInactiveIconResource(R.drawable.ic_launcher_background))
.addItem(new BottomNavigationItem(R.drawable.bottom_3, "third").setInactiveIconResource(R.drawable.ic_launcher_background))
.setFirstSelectedPosition(0)//初始化之后第一个选中的位置
.initialise();
//给底部导航栏的各种点击事件进行设置监听器,实现各种功能
bottomNavigationBar.setTabSelectedListener(new BottomNavigationBar.OnTabSelectedListener() {
@Override
public void onTabSelected(int position) { //选中 -> 未选中
Toast.makeText(MainActivity.this, "You click " + position, Toast.LENGTH_SHORT).show() ;
}
@Override
public void onTabUnselected(int position) { //未选中 -> 选中
}
@Override
public void onTabReselected(int position) { //选中 -> 选中
}
});
}
}
相关文章推荐
- 安卓 使用底部导航栏进行Fragment互相转换 结合笔记2的底部导航栏(新手笔记-6)
- 安卓开发--应用市场的界面制作(一)--viewpager+fragment实现可滑动的底部导航栏
- 安卓开发笔记——TabHost组件(二)(实现底部菜单导航)
- 安卓APP底部导航栏(有消息圆点指示器),实现fragment切换(eclipse)
- 【Android】安卓开发实战之使用Fragment(碎片)实现底部导航栏效果
- 安卓 运用Application实现全局变量(新手笔记-7)
- 安卓--类似微信底部导航栏实现原理(frame和radiogroup)
- 安卓开发笔记——多种方式实现底部菜单栏(仿微信界面)
- 安卓 实现Recyclerview中的分割线(新手笔记-9)
- 手把手教您撸一个底部中心凸起的可以添加通知条数的底栏(安卓APP底栏点击第一次选中当前Fragment第二次点击更新当前页面(实现))
- 安卓精美底部导航栏的实现TabHost
- 安卓 实现Recyclerview(新手笔记-8)
- 安卓商城学习笔记--01-底部导航栏
- android新手之底部导航栏的几种实现方式
- 安卓开发复习笔记——Fragment+FragmentTabHost组件(实现新浪微博底部菜单)
- 安卓开发笔记——多种方式实现底部菜单栏(仿微信界面)
- 安卓 实现PopUpWindow (长按删除列表元素的界面)(新手笔记-18)
- 安卓微信底部导航栏的实现
- Android用Scroller实现一个可向上滑动的底部导航栏
- 【安卓】安卓App开发思路 一步一个脚印(二)FragmentTabHost实现底部的菜单