49.HarmonyOS鸿蒙系统 App(ArkUI)Tab导航组件的使用

embedded/2024/9/23 0:27:39/

HarmonyOS鸿蒙系统 App(ArkUI)Tab导航组件的使用

图片显示

Row()
{Image($r('app.media.leaf')).height(100).width(100)Image($r('app.media.icon')).height(100).width(100)
}

 

左侧导航 

 

import prompt from '@ohos.prompt';
import promptAction from '@ohos.promptAction';
@Entry
@Component
struct Index {@State message: string = 'Hello World'@State handlePopup: boolean = falsebuild() {// Tabs() { //默认顶部导航// Tabs({ barPosition: BarPosition.End }) { //设置底部导航Tabs({ barPosition: BarPosition.Start }) { //设置顶部部导航TabContent() {Column(){Row(){Image($r('app.media.leaf')).height(100).width(100)Image($r('app.media.icon')).height(100).width(100)}Row(){Text('工号:')TextInput({text:'tintel10699487'}).backgroundColor(Color.Yellow)}Row(){Button('确定')}Row(){Text('首页的内容').fontSize(30)Button('查看')}Row(){Text('首页的内容2').fontSize(30)Button('查看2')}}}.tabBar('首页').backgroundColor(Color.Green)TabContent() {Column(){Row(){Text('这里是推荐的内容').fontSize(30)}Row(){Text('这里是推荐的内容2').fontSize(30)}Row(){Text('这里是推荐的内容3').fontSize(30)}Row(){Text('这里是推荐的内容4').fontSize(30)}Row(){Text('这里是推荐的内容5').fontSize(30)}}}.tabBar('推荐').backgroundColor(Color.Yellow)TabContent() {Text('发现的内容').fontSize(30)}.tabBar('发现')TabContent() {Column(){Row(){Text('姓名:').fontSize(30).fontColor(Color.White)TextInput({text:"书书航"}).fontSize(30).fontColor(Color.Green)}Row(){Text('职业:').fontSize(30).fontColor(Color.White)TextInput({text:"工程师"}).fontSize(30).fontColor(Color.Green)}Row(){Text('爱好:').fontSize(30).fontColor(Color.White)TextInput({text:"音乐"}).fontSize(30).fontColor(Color.Green)}Row(){Text('户籍:').fontSize(30).fontColor(Color.White)TextInput({text:"CHN"}).fontSize(30).fontColor(Color.Green)}Row(){Text('地区:').fontSize(30).fontColor(Color.White)TextInput({text:"SHH"}).fontSize(30).fontColor(Color.Green)}Row(){Button('编辑').fontSize(30).fontColor(Color.White)Button('确认').fontSize(30).fontColor(Color.White)}}}.tabBar("我的").backgroundColor(Color.Blue)}.vertical(true)}
}

 

Tabs组件的页面的组成包含了两个部分,分别是TabContent和TabBar。TabContent是内容页,TabBar是导航页签栏,页面结构如下图所示,根据不同的导航类型,布局会有区别,可以分为底部导航、顶部的导航、侧边的导航,其导航栏分别位于底部、顶部和侧边。

图1 Tabs组件布局示意图

说明

  • TabContent组件不支持设置通用宽度属性,其宽度默认撑满Tabs父组件。
  • TabContent组件不支持设置通用高度属性,其高度由Tabs父组件高度与TabBar组件高度决定。

Tabs使用花括号包裹TabContent,如图2,其中TabContent显示相应的内容页。

图2 Tabs与TabContent使用

每一个TabContent对应的内容需要有一个页签,可以通过TabContent的tabBar属性进行配置。在如下TabContent组件上设置属性tabBar,可以设置其对应页签中的内容,tabBar作为内容的页签。

 
  1. TabContent() {
  2. Text('首页的内容').fontSize(30)
  3. }
  4. .tabBar('首页')

设置多个内容时,需在Tabs内按照顺序放置。

 
  1. Tabs() {
  2. TabContent() {
  3. Text('首页的内容').fontSize(30)
  4. }
  5. .tabBar('首页')
  6. TabContent() {
  7. Text('推荐的内容').fontSize(30)
  8. }
  9. .tabBar('推荐')
  10. TabContent() {
  11. Text('发现的内容').fontSize(30)
  12. }
  13. .tabBar('发现')
  14. TabContent() {
  15. Text('我的内容').fontSize(30)
  16. }
  17. .tabBar("我的")
  18. }

 

顶部导航:

设置:Tabs({ barPosition: BarPosition.Start }) { //设置顶部部导航
设置:}.vertical(false)

import prompt from '@ohos.prompt';
import promptAction from '@ohos.promptAction';
@Entry
@Component
struct Index {@State message: string = 'Hello World'@State handlePopup: boolean = falsebuild() {// Tabs() { //默认顶部导航// Tabs({ barPosition: BarPosition.End }) { //设置底部导航Tabs({ barPosition: BarPosition.Start }) { //设置顶部部导航TabContent() {Column(){Row(){Image($r('app.media.leaf')).height(100).width(100)Image($r('app.media.icon')).height(100).width(100)}Row(){Text('工号:')TextInput({text:'tintel10699487'}).backgroundColor(Color.Yellow)}Row(){Button('确定')}Row(){Text('首页的内容').fontSize(30)Button('查看')}Row(){Text('首页的内容2').fontSize(30)Button('查看2')}}}.tabBar('首页').backgroundColor(Color.Green)TabContent() {Column(){Row(){Text('这里是推荐的内容').fontSize(30)}Row(){Text('这里是推荐的内容2').fontSize(30)}Row(){Text('这里是推荐的内容3').fontSize(30)}Row(){Text('这里是推荐的内容4').fontSize(30)}Row(){Text('这里是推荐的内容5').fontSize(30)}}}.tabBar('推荐').backgroundColor(Color.Yellow)TabContent() {Text('发现的内容').fontSize(30)}.tabBar('发现')TabContent() {Column(){Row(){Text('姓名:').fontSize(30).fontColor(Color.White)TextInput({text:"书书航"}).fontSize(30).fontColor(Color.Green)}Row(){Text('职业:').fontSize(30).fontColor(Color.White)TextInput({text:"工程师"}).fontSize(30).fontColor(Color.Green)}Row(){Text('爱好:').fontSize(30).fontColor(Color.White)TextInput({text:"音乐"}).fontSize(30).fontColor(Color.Green)}Row(){Text('户籍:').fontSize(30).fontColor(Color.White)TextInput({text:"CHN"}).fontSize(30).fontColor(Color.Green)}Row(){Text('地区:').fontSize(30).fontColor(Color.White)TextInput({text:"SHH"}).fontSize(30).fontColor(Color.Green)}Row(){Button('编辑').fontSize(30).fontColor(Color.White)Button('确认').fontSize(30).fontColor(Color.White)}}}.tabBar("我的").backgroundColor(Color.Blue)}.vertical(false)}
}

 

 

底部导航:

设置:Tabs({ barPosition: BarPosition.End}) { //设置底部导航
设置:}.vertical(false)

 

 

import prompt from '@ohos.prompt';
import promptAction from '@ohos.promptAction';
@Entry
@Component
struct Index {@State message: string = 'Hello World'@State handlePopup: boolean = falsebuild() {// Tabs() { //默认顶部导航Tabs({ barPosition: BarPosition.End }) { //设置底部导航//Tabs({ barPosition: BarPosition.Start }) { //设置顶部部导航TabContent() {Column(){Row(){Image($r('app.media.leaf')).height(100).width(100)Image($r('app.media.icon')).height(100).width(100)}Row(){Text('工号:')TextInput({text:'tintel10699487'}).backgroundColor(Color.Yellow)}Row(){Button('确定')}Row(){Text('首页的内容').fontSize(30)Button('查看')}Row(){Text('首页的内容2').fontSize(30)Button('查看2')}}}.tabBar('首页').backgroundColor(Color.Green)TabContent() {Column(){Row(){Text('这里是推荐的内容').fontSize(30)}Row(){Text('这里是推荐的内容2').fontSize(30)}Row(){Text('这里是推荐的内容3').fontSize(30)}Row(){Text('这里是推荐的内容4').fontSize(30)}Row(){Text('这里是推荐的内容5').fontSize(30)}}}.tabBar('推荐').backgroundColor(Color.Yellow)TabContent() {Text('发现的内容').fontSize(30)}.tabBar('发现')TabContent() {Column(){Row(){Text('姓名:').fontSize(30).fontColor(Color.White)TextInput({text:"书书航"}).fontSize(30).fontColor(Color.Green)}Row(){Text('职业:').fontSize(30).fontColor(Color.White)TextInput({text:"工程师"}).fontSize(30).fontColor(Color.Green)}Row(){Text('爱好:').fontSize(30).fontColor(Color.White)TextInput({text:"音乐"}).fontSize(30).fontColor(Color.Green)}Row(){Text('户籍:').fontSize(30).fontColor(Color.White)TextInput({text:"CHN"}).fontSize(30).fontColor(Color.Green)}Row(){Text('地区:').fontSize(30).fontColor(Color.White)TextInput({text:"SHH"}).fontSize(30).fontColor(Color.Green)}Row(){Button('编辑').fontSize(30).fontColor(Color.White)Button('确认').fontSize(30).fontColor(Color.White)}}}.tabBar("我的").backgroundColor(Color.Blue)}.vertical(false)}
}

 


http://www.ppmy.cn/embedded/7031.html

相关文章

游戏测试之常见控制技能(下)

备注:未经博主允许禁止转载 个人笔记(整理不易,有帮助,收藏点赞评论,爱你们!!!你的支持是我写作的动力) 笔记目录:学习笔记目录_pytest和unittest、airtest_w…

大模型入门相关文章

1.了解国内外大模型发展现状188个大模型和20个开源基础模型,《2023大模型产业发展白皮书》全面解析国内外大模型发展情况 - 知乎 (zhihu.com) 2.垂直领域,美妆大模型 关于懂美学的视觉大模型,我们问了美图 21 个问题 - 知乎 (zhihu.com) 3…

【创建型模式】原型模式

一、原型模式概述 原型(Prototype)模式的定义:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效&#xf…

赠品:跳动的心

下面是一段html代码&#xff0c;你可以把它在浏览器中显示一下&#xff0c;有点意思。 <!DOCTYPE html> <html lang"en" encoding"utf-8"> <head> <meta charset"UTF-8"> <title>Titlexinxing</title…

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单视频处理实战案例 之十一 简单给视频添加水印图片效果 一、简单介绍 二、简单给视频添加水印图片效果实现…

Android Studio 之 Intent及其参数传递

一、Intent 显式Intent&#xff1a;通过组件名指定启动的目标组件,比如startActivity(new Intent(A.this,B.class)); 每次启动的组件只有一个~隐式Intent:不指定组件名,而指定Intent的Action,Data,或Category,当我们启动组件时, 会去匹配AndroidManifest.xml相关组件的Intent-…

Spring Cloud 运维篇1——Jenkins CI/CD 持续集成部署

Jenkins 1、Jenkins是什么&#xff1f; Jenkins 是一款开源 CI/CD 软件&#xff0c;用于自动化各种任务&#xff0c;包括构建、测试和部署软件。 Jenkins 支持各种运行方式&#xff0c;可通过系统包、Docker 或者一个独立的 Java 程序。 Jenkins Docker Compose持续集成流…

车轮上的智能:探索机器学习在汽车行业的应用前景

文章目录 引言&#xff1a;一、机器学习在汽车设计中的应用设计优化模拟与测试 二、智能制造与生产三、自动驾驶技术感知与决策数据融合 四、市场与模式的变革五、机器学习对于汽车行业的机遇与挑战挑战机遇 引言&#xff1a; 在当今数字化时代&#xff0c;机器学习作为人工智…