好多app都有切换点中的时候高亮效果,如下图所示:
改变的是什么呢?是字体的颜色、背景图,不是切换到的界面,又恢复到默认的图片和字体颜色,而鸿蒙中更新界面的值需要使用State修饰,Tabs提供了onChange方法,切换选项卡时调用,返回的是切换或者是选中叶的下标索引,对比索引和切换后的返回值一样,就是需要高亮的界面,否则就不需要高亮的界面。
myBuilder多了两个参数,一个是下标索引值,一个是选中的时候的图片,当索引和切换到的下标值一样的时候,就加载高亮的图片和文字颜色也改成高亮。
总结:鸿蒙Tabs高亮的本质是切换背景图和改文字的颜色,在鸿蒙中做到这样的效果只需要变量用State修饰,而自定义tabBar的时候刚好可以设置tabBar的索引,而点击tab或者滑动的时候刚能够获得tab的索引值,两者等的时候显示背景图和字体的背景色,不一样就显示默认的字体颜色和默认的背景图