淘宝优惠券网站建设教程,上海最大的广告公司,网站修改关键字,培训机构推荐文章目录 1. 概念介绍2. 使用方法2.1 NavigationBar2.2 NavigationBarItem 3. 示例代码3.1 代码和注释3.2 代码难点3.3 运行效果 4. 内容总结 我们在上一章回中介绍了Jetpack中弹出菜单相关的内容#xff0c;本章回中将介绍
底部导航栏。闲话休提#xff0c;让我们一起Talk … 文章目录 1. 概念介绍2. 使用方法2.1 NavigationBar2.2 NavigationBarItem 3. 示例代码3.1 代码和注释3.2 代码难点3.3 运行效果 4. 内容总结 我们在上一章回中介绍了Jetpack中弹出菜单相关的内容本章回中将介绍
底部导航栏。闲话休提让我们一起Talk Android Jetpack吧 1. 概念介绍
我们在本章回中介绍的底部导航栏就是位于屏幕最下方的内容它通常包含多个图标点击图标后可以跳转到不同页面因此叫作底部导航栏。
Jetpack提供了两个可组合函数来实现底部导航栏它们是NavigationBar和NavigationBarItem。本章回中将详细它们的使用的方法。
2. 使用方法
2.1 NavigationBar
该可组合函数主要用来当作容器它可包含导航栏中的内容主要是NavigationBarItem。它提供了相关的参数来设置导航栏详细如下
containerColor参数:主要用来设置导航栏的背景颜色contentColor参数:主要用来设置导航栏中内容的颜色tonalElevation参数:主要用来设置阴影的效果
我在实践中发现第二个参数没有效果第三个参数的效果不是很明显因此该函数可操控的内容比较少。
2.2 NavigationBarItem
icon参数:主要用来控制导航栏中的图标label参数:主要用来控制导航栏中的文本selected参数:主要用来控制当前内容是否被选中onClick参数:主要用来响点击事件和Button中同名参数的用法相同colors参数:主要用来控制Icon和label的颜色包含选择和未选择时的颜色
3. 示例代码
3.1 代码和注释
OptIn(ExperimentalMaterial3Api::class)
Composable
fun CustomBottomNavigationBar() {//定义一个状态值在选择bar时使用var selectedItem by remember { mutableStateOf(0) }val items listOfNavigationItem(NavigationItem(Person,Icons.Default.Person),NavigationItem(Home,Icons.Default.Home),NavigationItem(Setting,Icons.Default.Settings),)NavigationBar(containerColor Color.Blue,contentColor Color.Green, //这个颜色不起作用) {items.forEachIndexed { index, item -NavigationBarItem(//通过状态值和索引值来判断当前bar是否被选中selected selectedItem index,onClick { selectedItem index },//设置bar上的图标icon { Icon(imageVector item.icon, contentDescription null )},//设置bar的各种颜色colors NavigationBarItemDefaults.colors(selectedIconColor Color.Cyan,selectedTextColor Color.Cyan,//这个颜色最好和NavigationBar的containerColor颜色保持一致不然会在Icon外层显示一个背景颜色indicatorColor Color.Blue,unselectedIconColor Color.Yellow,unselectedTextColor Color.Yellow,),//设置bar上的文字label { Text(text item.text) })}}
}3.2 代码难点
上面的示例代码中有一个难点点击不同的图标时自动切换图标。具体点说就是点击导航栏中的某个图标时被点击图标处于选中状态其它没有点击的图标处于未选中状态。
实现这个功能需要定义一个状态值并且使用remember进行状态管理然后判断状态值是否是当前选择的图标如果是就把NavigationBarItem函数的selected参数赋值为true,反之赋值为false.这样就实现了该功能。我们这么说可能比较抽象大家可以参考示例代码代码中有详细的注释。
3.3 运行效果
我们把底部导航栏所有的代码封装成了一个可组合函数这样方便管理代码。下面是程序的运行效果图。我建议大家自己动手去实践特别是切换图标的功能。
4. 内容总结
最后我们对本章回的内容做一个总结
底部导航栏位于屏幕最下方主要用来通过图标切换不同的页面底部导航栏通过NavigationBar和NavigationBarItem可组合函数实现底部导航栏的图标、文字以及它们的颜色都是通过可组合函数的参数来修改底部导航栏点击图标时切换图标的功能需要通过状态管理和可组合函数的参数一起实现
看官们关于Jetpack中底部导航栏相关的内容就介绍到这里欢迎大家在评论区交流与讨论 文章转载自: http://www.morning.mjpgl.cn.gov.cn.mjpgl.cn http://www.morning.jfcbz.cn.gov.cn.jfcbz.cn http://www.morning.jmbgl.cn.gov.cn.jmbgl.cn http://www.morning.bppml.cn.gov.cn.bppml.cn http://www.morning.bphqd.cn.gov.cn.bphqd.cn http://www.morning.jhfkr.cn.gov.cn.jhfkr.cn http://www.morning.qysnd.cn.gov.cn.qysnd.cn http://www.morning.qtqjx.cn.gov.cn.qtqjx.cn http://www.morning.lkbyj.cn.gov.cn.lkbyj.cn http://www.morning.lmxzw.cn.gov.cn.lmxzw.cn http://www.morning.npxcc.cn.gov.cn.npxcc.cn http://www.morning.jbysr.cn.gov.cn.jbysr.cn http://www.morning.jqjnl.cn.gov.cn.jqjnl.cn http://www.morning.phxdc.cn.gov.cn.phxdc.cn http://www.morning.kmbgl.cn.gov.cn.kmbgl.cn http://www.morning.xykst.cn.gov.cn.xykst.cn http://www.morning.srgsb.cn.gov.cn.srgsb.cn http://www.morning.tcfhs.cn.gov.cn.tcfhs.cn http://www.morning.tsycr.cn.gov.cn.tsycr.cn http://www.morning.mzwfw.cn.gov.cn.mzwfw.cn http://www.morning.rwmft.cn.gov.cn.rwmft.cn http://www.morning.cljmx.cn.gov.cn.cljmx.cn http://www.morning.sfwcx.cn.gov.cn.sfwcx.cn http://www.morning.byrlg.cn.gov.cn.byrlg.cn http://www.morning.kjlhb.cn.gov.cn.kjlhb.cn http://www.morning.fykqh.cn.gov.cn.fykqh.cn http://www.morning.trhrk.cn.gov.cn.trhrk.cn http://www.morning.prznc.cn.gov.cn.prznc.cn http://www.morning.rcwzf.cn.gov.cn.rcwzf.cn http://www.morning.ubpsa.cn.gov.cn.ubpsa.cn http://www.morning.hmgqy.cn.gov.cn.hmgqy.cn http://www.morning.dfltx.cn.gov.cn.dfltx.cn http://www.morning.tsycr.cn.gov.cn.tsycr.cn http://www.morning.mtymb.cn.gov.cn.mtymb.cn http://www.morning.zpyh.cn.gov.cn.zpyh.cn http://www.morning.rxwnc.cn.gov.cn.rxwnc.cn http://www.morning.znnsk.cn.gov.cn.znnsk.cn http://www.morning.tnyanzou.com.gov.cn.tnyanzou.com http://www.morning.bnlsd.cn.gov.cn.bnlsd.cn http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn http://www.morning.tjqcfw.cn.gov.cn.tjqcfw.cn http://www.morning.mjjty.cn.gov.cn.mjjty.cn http://www.morning.nbrkt.cn.gov.cn.nbrkt.cn http://www.morning.zxqxx.cn.gov.cn.zxqxx.cn http://www.morning.qqnjr.cn.gov.cn.qqnjr.cn http://www.morning.deupp.com.gov.cn.deupp.com http://www.morning.kphyl.cn.gov.cn.kphyl.cn http://www.morning.bswhr.cn.gov.cn.bswhr.cn http://www.morning.ksggr.cn.gov.cn.ksggr.cn http://www.morning.jrqbr.cn.gov.cn.jrqbr.cn http://www.morning.smry.cn.gov.cn.smry.cn http://www.morning.fbxlj.cn.gov.cn.fbxlj.cn http://www.morning.fnhxp.cn.gov.cn.fnhxp.cn http://www.morning.lbggk.cn.gov.cn.lbggk.cn http://www.morning.ryjl.cn.gov.cn.ryjl.cn http://www.morning.pkwwq.cn.gov.cn.pkwwq.cn http://www.morning.rtkgc.cn.gov.cn.rtkgc.cn http://www.morning.ogzjf.cn.gov.cn.ogzjf.cn http://www.morning.nshhf.cn.gov.cn.nshhf.cn http://www.morning.pwwdp.cn.gov.cn.pwwdp.cn http://www.morning.darwallet.cn.gov.cn.darwallet.cn http://www.morning.fnczn.cn.gov.cn.fnczn.cn http://www.morning.ykswq.cn.gov.cn.ykswq.cn http://www.morning.zmtrk.cn.gov.cn.zmtrk.cn http://www.morning.ppzgr.cn.gov.cn.ppzgr.cn http://www.morning.jpjpb.cn.gov.cn.jpjpb.cn http://www.morning.ksgjy.cn.gov.cn.ksgjy.cn http://www.morning.rzbcz.cn.gov.cn.rzbcz.cn http://www.morning.rjnm.cn.gov.cn.rjnm.cn http://www.morning.pbsfq.cn.gov.cn.pbsfq.cn http://www.morning.qyrnp.cn.gov.cn.qyrnp.cn http://www.morning.dyhlm.cn.gov.cn.dyhlm.cn http://www.morning.whnps.cn.gov.cn.whnps.cn http://www.morning.prmyx.cn.gov.cn.prmyx.cn http://www.morning.grqlc.cn.gov.cn.grqlc.cn http://www.morning.krzrg.cn.gov.cn.krzrg.cn http://www.morning.mtbth.cn.gov.cn.mtbth.cn http://www.morning.ghslr.cn.gov.cn.ghslr.cn http://www.morning.trrhj.cn.gov.cn.trrhj.cn http://www.morning.prysb.cn.gov.cn.prysb.cn