Android BottomNavigationView底部导航效果
程序员文章站
2024-02-10 14:38:16
bottomnavigationview 很早之前就在 material design 中出现了,但是直到 android support library 25 中才增加了...
bottomnavigationview 很早之前就在 material design 中出现了,但是直到 android support library 25 中才增加了 bottomnavigationview 控件。也就是说如果使用官方的bottomnavigationview控件必须让targetsdkversion >= 25,这样才能引入25版本以上的兼容包。
接下来我们来看看如何使用bottomnavigationview。
使用bottomnavigationview 需要添加design兼容包的依赖。
dependencies { //... compile 'com.android.support:design:25.1.0' }
在 res/menu/ 目录下创建一个 xml 文件(没有该目录则手动创建一个),我将其命名为 navigation.xml,里面使用的图片资源都是系统自带的。这个文件是用来定义导航条目具体的信息。
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/call" android:icon="@android:drawable/ic_menu_call" android:title="call" /> <item android:id="@+id/message" android:icon="@android:drawable/ic_dialog_email" android:title="message" /> <item android:id="@+id/search" android:icon="@android:drawable/ic_menu_search" android:title="搜索" /> <item android:id="@+id/delete" android:icon="@android:drawable/ic_menu_delete" android:title="删除"/> </menu>
每个item表示底部导航的一个条目,icon是图标,title是文字。
然后修改activity布局
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_bottom_navigation_view" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" > <textview android:id="@+id/tv_content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerinparent="true" android:text="演示内容" android:textsize="36sp"/> <android.support.design.widget.bottomnavigationview android:id="@+id/navigation" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignparentbottom="true" app:itembackground="@android:color/black" app:itemicontint="@android:color/white" app:itemtextcolor="@android:color/white" app:menu="@menu/navigation"/> </relativelayout>
bottomnavigationview有几个特殊的属性,
* itemtbackground 条目背景
* itemicotint 图标渲染的颜色
* itemttextcolor 文字的颜色
* menu 关联上面创建的菜单
最后修改bottomnavigationviewactivity代码
public class bottomnavigationviewactivity extends appcompatactivity { private textview textview; private bottomnavigationview navigationview; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_bottom_navigation_view); textview = (textview) findviewbyid(r.id.text); navigationview = (bottomnavigationview) findviewbyid(r.id.navigation); //选中条目的监听事件 navigationview.setonnavigationitemselectedlistener( new bottomnavigationview.onnavigationitemselectedlistener() { @override public boolean onnavigationitemselected(@nonnull menuitem item) { textview.settext(item.gettitle().tostring()); return true; } }); } }
注意事项
* 底部导航栏默认高度是56dp
* 菜单建议是3-5个
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。