前言
一般我们实现底部导航都是采用,自定义View的方式来实现的,今天我们使用Google为我们提供的BottomNavigationView来实现这个功能。
首先引入依赖
api 'com.android.support:design:28.0.0'
在布局中写入我们的BottomNavigationView UI组件
<android.support.design.widget.BottomNavigationView android:id="@+id/bottomNavigationView" android:layout_width="match_parent" app:menu="@menu/nav_menu" app:labelVisibilityMode="labeled" app:itemTextColor="@color/navigation_text_color" app:itemHorizontalTranslationEnabled="false" app:itemBackground="@null" android:layout_alignParentBottom="true" android:layout_height="60dp"> </android.support.design.widget.BottomNavigationView>
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="https://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_add" android:icon="@drawable/tab_main_selector" android:title="@string/main_shequ"/> <item android:id="@+id/menu_add1" android:icon="@drawable/tab_kind_selector" android:title="@string/main_jiaoyou"/> <item android:id="@+id/menu_add2" android:icon="@drawable/tab_cart_selector" android:title="@string/main_xiaoxi"/> <item android:id="@+id/menu_add3" android:icon="@drawable/tab_mine_selector" android:title="@string/main_wo"/> </menu>
认识几个属性
app:menu="@menu/nav_menu"
配置我们底部导航所要陈列的信息
app:labelVisibilityMode="labeled"
显示我们的底部文案信息
app:itemTextColor="@color/navigation_text_color"
为底部文字配置显示的字体颜色
app:itemIconTint="@color/navigation_text_color"
为导航的icon着色,如果不设置,则默认使用主题色着色
app:itemHorizontalTranslationEnabled="false"
true 开启水平位移效果,false 禁用水平位移效果,默认为true
app:itemBackground="@null"
去除水波纹效果办法,普通app都没有使用android的这个水波纹效果
BottomNavigationView { bottomNavigationView.setItemIconTintList(null);}
去除底部icon默认着色效果
<dimen tools:override="true" name="design_bottom_navigation_text_size">12sp</dimen> <!-- text大小 --> <dimen tools:override="true" name="design_bottom_navigation_active_text_size">12sp</dimen>
字体向上缩放效果移除,通过设置选中和未选中时的字体大小,(无需反射!!!)
<dimen tools:override="true" name="design_bottom_navigation_margin">10dp</dimen> <!-- 导航栏高度 --> <dimen tools:override="true" name="design_bottom_navigation_height">84dp</dimen> 设置导航栏高度和间距
api 'q.rorbin:badgeview:1.1.3'
itemhome= navigation.findViewById(R.id.menu_add); badge1=new QBadgeView(this).bindTarget(itemhome) .setShowShadow(true) .setBadgeGravity(Gravity.END|Gravity.TOP) .setOnDragStateChangedListener(newBadge.OnDragStateChangedListener() { @Override public voidonDragStateChanged(intdragState, Badge badge, View targetView) { } }) .setBadgeNumber(1);
设置数字角标
结束语
以上是我对BottomNavigationView的使用总结,如果帮到你,请点个赞谢谢
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/addevelopment/897133.html