1.35个Redis企业级性能优化点与解决方案
2.对比传统数据库,TiDB 强在哪?谈谈 TiDB 的适应场景和产品能力
3.深度长文解析SpringWebFlux响应式框架15个核心组件源码
4.Nginx性能调优5招35式不可不知的策略实战
5.Java Executors类的9种创建线程池的方法及应用场景分析
6.Redis数据结构—跳跃表 skiplist 实现源码分析
7.Volatile不保证原子性及解决方案
8.吃透 JVM 诊断方法与工具使用
9.Java RMI技术详解与案例分析
10.通过JUnit源码分析学习编程的奇技淫巧
11.什么是依赖倒置原则
12.初探 Rust 语言与环境搭建
13.为什么用Vite框架?来看它的核心组件案例详解
14.Vue状态管理库Pinia详解
15.Tomcat的配置文件中有哪些关键的配置项,它们分别有什么作用?
16.ECharts实现雷达图详解
17.OpenFeign深入学习笔记
18.阿里面试让聊一聊Redis 的内存淘汰(驱逐)策略
19.除了递归算法,要如何优化实现文件搜索功能
20.关于建表字段是否该使用not null这个问题你怎么看?
21.三大硬核方式揭秘:Java如何与底层硬件和工业设备轻松通信!
22.在 ArkTS 中,如何有效地进行内存管理和避免内存泄漏?
23.10款好用的开源 HarmonyOS 工具库
24.尝鲜 HarmonyOS NEXT 开发环境搭建
25.
HarmonyOS NEXT 底部选项卡功能
在HarmonyOS NEXT中使用ArkTS实现一个完整的底部选项卡功能,可以通过以下几个步骤来完成:
-
创建Tabs组件:使用
Tabs
组件来创建底部导航栏,并通过barPosition
属性设置其位置为底部(BarPosition.End
)。 -
添加TabContent子组件:在
Tabs
组件内部,为每个页面创建一个TabContent
子组件,这些子组件将包含每个选项卡页面的内容。 -
配置TabBar:通过
TabContent
的tabBar
属性来配置每个选项卡的标题和图标。可以使用自定义函数tabBuilder
来构建每个选项卡的样式,包括图标和文本。 -
设置状态和控制器:使用
@State
装饰器来定义当前选中的选项卡索引,并使用TabsController
来控制选项卡之间的切换。 -
自定义样式:可以通过
barMode
、scrollable
等属性来自定义导航栏的样式和行为,例如设置为固定宽度或滚动显示。 -
事件处理:通过
onChange
事件来监听选项卡的切换,并更新当前状态。
以下是一个简单的代码示例,展示了如何使用ArkTS实现底部选项卡功能:
@Entry
@Component
struct BottomTabExample {
controller: TabsController = new TabsController()
@State current: number = 0
tabBuilder($$: { index: number; label: string; normalIcon: Resource; selectIcon: Resource }) {
Column() {
Image(this.current === $$.index ? $$.selectIcon : $$.normalIcon).width(26)
Text($$.label)
.fontSize('12fp')
.fontColor(this.current === $$.index ? '#62C9D0' : '#909090')
.margin({ top: 3 })
}
.width('100%')
.onClick(() => {
this.current = $$.index
this.controller.changeIndex(this.current)
})
}
build() {
Column() {
Tabs({ barPosition: BarPosition.End, controller: this.controller }) {
TabContent() {
Text('首页的内容')
}.tabBar(this.tabBuilder({
index: 0,
label: '首页',
normalIcon: $r('app.media.tabbar11'),
selectIcon: $r('app.media.tabbar12')
}))
TabContent() {
Text('发现的内容')
}.tabBar(this.tabBuilder({
index: 1,
label: '发现',
normalIcon: $r('app.media.tabbar21'),
selectIcon: $r('app.media.tabbar22')
}))
// ... 其他TabContent配置
}
.width('100%')
.barMode(BarMode.Fixed)
.scrollable(true)
.onChange(((index: number) => {
this.current = index
}))
}
.width('100%')
.backgroundColor('#f2f2f2')
}
}
我们创建了一个底部选项卡,每个选项卡都有对应的内容和图标。当用户点击不同的选项卡时,tabBuilder
函数会更新当前选中的选项卡索引,并且TabsController
会处理页面的切换。通过onChange
事件,我们可以监听选项卡的变化并执行相应的逻辑。学习鸿蒙 NEXT 开发,国产应用开发,全靠你我他,加油。