Android(安卓)UI Material Design交互设计(一)--BottomNavigationView底部菜单
Android UI Material Design交互设计(一)–BottomNavigationView底部菜单
Android UI Material Design交互设计(二)–Toolbar的基本使用与样式修改
Android UI Material Design交互设计(三)–SnackBar 详解
Android UI Material Design交互设计(四)–AppBarLayout 与Toolbar结合
Android UI Material Design交互设计(五)–CollapsingToolbarLayout 折叠布局
Android UI Material Design交互设计(六)–CoordinatorLayout之精髓Behavior 自定义Behavior
这个转GIF工具出了点问题,变成闪屏了
以前我们做这样的底部导航,需要自定义view或者很对view来组成这样的效果,很麻烦。但是Material Design中的BottomNavigationView一个控件完美解决来这个问题
如何使用:
一:添加依赖
implementation 'com.android.support:design:28.0.0'
二:布局使用
布局文件如下:activity_home.xml
<?xml version="1.0" encoding="utf-8"?>
BottomNavigationView的重要属性介绍
- 属性一: app:itemBackground 指定的是底部导航栏的背景颜色,默认是主题的颜色;
- 属性二: app:itemIconTint 指的是导航栏中图片的颜色 其实也可以不用设置,可以用图片自己的颜色
- 属性三: app:iteamTextColor 指的是导航栏文字的颜色
- 属性四: app:menu 指的是底部导航栏各个菜单items
@menu/navigation 文件是menu下面的navigation.xml文件 代码如下:
<?xml version="1.0" encoding="utf-8"?>
三:代码中设置item点击监听事件
public class HomeActivity extends AppCompatActivity implements BottomNavigationView.OnNavigationItemSelectedListener { TextView message; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); BottomNavigationView bottom = findViewById(R.id.bottom); message = findViewById(R.id.text); bottom.setOnNavigationItemSelectedListener(this); } @Override public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { switch (menuItem.getItemId()){ case R.id.navigation_home: message.setText("首页"); return true; case R.id.navigation_dashboard: message.setText("统计"); return true; case R.id.navigation_notifications: message.setText("我的"); return true; } return false; }}
注意:
这里底部导航图片与颜色都是点击会变化的,这里的颜色与图片都是用了selector状态选择器代码如下:
颜色:
@color/navigation_menu_item_color 文件代码
<?xml version="1.0" encoding="utf-8"?>
home_selector.xml 代码
<?xml version="1.0" encoding="utf-8"?>
小结:BottomNavigationView不止可以实现底部菜单,头部菜单,中部菜单都行的
更多相关文章
- 【EditText】Android(安卓)中设置 EditText 光标颜色
- Android软键盘挡住输入框的问题及解决方法
- 自定义ListView中的分割线
- EditText常用属性
- 关于CoordinatorLayout展开与折叠相关属性
- xml-----属性收集
- 做 Android(安卓)Layout 达人~
- Android(安卓)Layout_weight 属性
- Android动画学习笔记-Android(安卓)Animation