前言
BottomNavigation可以在Android中简单实现底部导航栏功能。本文对实现BottomNavigation的核心步骤进行了简要的记录。详细内容可以参考longway777的教程:BottomNavigation
提示:以下是本篇文章正文内容,下面案例可供参考
一、创建一个Menu
-
在Java Resourse中创建一个Menu
-
往里面拖入menuItem,并为其配置图
-
在activity_main.xml中拖入一个ButtomNavigationView,选中刚才创建的menu,设置参数,使menu处于容器底部
二、实现界面切换
代码如下(示例):
//获取bottomNavigationView对象
BottomNavigationView bottomNavigationView = findViewById(R.id.bottomNavigationView);
//NavController用来管理Fragment
NavController navController = Navigation.findNavController(this,R.id.fragment);
//下面的代码用来实现界面切换
AppBarConfiguration configuration = new AppBarConfiguration.Builder(bottomNavigationView.getMenu()).build();
NavigationUI.setupActionBarWithNavController(this,navController,configuration);
NavigationUI.setupWithNavController(bottomNavigationView,navController);
三、属性动画
1.ObjectAnimator
这个类能在修改控件属性的同时,附带上动画。以ObjectAnimator.ofFloat为例,具体参数及说明如下:
参数 | 说明 |
---|---|
Object | 需要修改属性的对象 |
String | 属性名 |
values | 属性的值,可传递多个 |
代码如下(示例):
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(imageView,"rotation",0,0);
objectAnimator.setDuration(500);//设置动画的持续时间
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!objectAnimator.isRunning()) {//当动画正在运行时,不执行点击事件
objectAnimator.setFloatValues(imageView.getRotation(), imageView.getRotation() + 100);
objectAnimator.start();
}
}
});
2.多个动画同时执行
ObjectAnimator objectAnimatorX =ObjectAnimator.ofFloat(imageView,"scaleX",0,0);
ObjectAnimator objectAnimatorY =ObjectAnimator.ofFloat(imageView,"scaleY",0,0);
AnimatorSet set = new AnimatorSet();
set.playTogether(objectAnimatorX,objectAnimatorY);
该处创建一个动画组,然后执行动画组的playTogether()方法。