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

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 = false
  build() {
   // 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 = false
  build() {
   // 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 = false
  build() {
   // 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)
  }
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/552371.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue2知识点1 ———— (vue指令,vue的响应式基础)

vue2的知识点,更多前端知识在主页,还有其他知识会持续更新 Vue 指令 Vue指令是Vue.js中的一个重要概念,用于向DOM元素添加特定行为或功能。Vue指令以v-开头,例如v-bind、v-if、v-for等。 v-bind 动态绑定属性 用法&#xff1a…

windows ubuntu 子系统:肿瘤全外篇,2. fq 数据质控,比对。

首先我们先下载一组全外显子测序数据。nabi sra库,随机找了一个。 来自受试者“16177_CCPM_1300019”(SRR28391647, SRR28398576)的样本“16177_CCPM_1300019_BB5”的基因组DNA配对端文库“0369547849_Illumina_P5-Popal_P7-Hefel”的Illumina随机外显子测序 下载下…

SGI_STL空间配置器源码剖析(一)总览

SGI 全称为 Silicon Graphics [Computer System] Inc. 硅图[计算机系统] 公司,SGI_STL是SGI实现的C的标准模板库。 SGI STL的空间配置器包括一级和二级两种。 一级空间配置器allocator采用malloc和free来管理内存,这与C标准库中提供的allocator是相似的…

VS集成vcpkg

VS集成vcpkg 下载vcpkg 下载vcpkg git clone https://github.com/Microsoft/vcpkg.git安装vcpgk,文件目录 .\bootstrap-vcpkg.bat集成到vs2022中 # 集成到项目 vcpkg integrate project vcpkg integrate installPS C:\Users\Administrator> vcpkg integrate…

大模型开发轻松入门——(1)从搭建自己的环境开始

pip install openai import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv())openai.api_key os.getenv(OPENAI_API_KEY)

如何选择投资交易策略?很简单,只需回答fpmarkets6个问题

刚迈出交易的第一步的投资新手们,是不是还没有选择策略?外汇市场上的交易策略是一种算法,可以让投资者以最低的风险尽快实现目标。目标通常是获得一定比例的利润。 那么如何选择投资交易策略?很简单,只需回答fpmarkets…

计算机网络 2.2数据传输方式

第二节 数据传输方式 一、数据通信系统模型 添加图片注释,不超过 140 字(可选) 1.数据终端设备(DTE) 作用:用于处理用户数据的设备,是数据通信系统的信源和信宿。 设备:便携计算机…

酒店餐厅装水离子雾化壁炉前和装后对比

酒店餐厅装水离子雾化壁炉前和装后的对比可以体现出餐厅氛围和客户体验的显著改变: 装前: 普通的氛围:餐厅可能显得比较普通,缺乏特色或独特的装饰元素。 视觉上缺乏焦点:餐厅空间可能显得相对平淡,缺乏…

如何在MacOS上使用OpenHarmony SDK交叉编译?

本文以cJSON三方库为例介绍如何通过OpenHarmony的SDK在Mac平台进行交叉编译。 环境准备 SDK准备 我们可以通过 openHarmony SDK 官方发布渠道下载对应mac版本的SDK,当前OpenHarmony MAC版本的SDK有2种,一种是x86架构,另一种是arm64&#x…

【小白学机器学习13】一文理解假设检验的反证法,H0如何设计的,什么时候用左侧检验和右侧检验,等各种关于假设检验的基础知识

目录 前言: 目标 1 什么叫 假设检验 1.1 假设检验的定义 1.1.1 来自百度百科 1.1.2 维基百科 1.2 假设检验的最底层逻辑:是反证法思想 1.3 假设检验的底层构造:小概率反证法思想 2 什么叫反证法 2.1 反证法的概念 2.1.1 来自百度…

HarmonyOS开发实例:【任务延时调度】

介绍 本示例使用[ohos.WorkSchedulerExtensionAbility] 、[ohos.net.http]、[ohos.notification] 、[ohos.bundle]、[ohos.fileio] 等接口,实现了设置后台任务、下载更新包 、保存更新包、发送通知 、安装更新包实现升级的功能。 效果预览 使用说明 安装本应用之…

基于Python的机器学习的文本分类系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

PyTorch深度学习入门-2

PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili 一、神经网络的基本骨架 --nn.Module Neutral network torch.nn — PyTorch 2.2 documentation * import torch from torch import nnclass xiaofan(nn.Module):…

探索未来:人工智能—图像分类的发展与核心技术

引言 在当今数字化时代,图像已经成为我们生活中不可或缺的一部分,而人工智能技术的发展为图像处理和分析提供了巨大的机遇和挑战。其中,图像分类作为人工智能领域的一个重要应用,在诸多领域中发挥着关键作用。 人工智能在图像分类…

Pascal VOC(VOC 2012、VOC 2007) 数据集的简介

一、数据集介绍 PascalVOC(2005~2012)数据集是PASCAL VOC挑战官方使用的数据集。该数据集包含20类的物体。每张图片都有标注,标注的物体包括人、动物(如猫、狗、岛等)、交通工具(如车、船飞机等)、家具(如椅…

多线程意义

直接上代码 我们来看两个程序 由一个线程和两个线程运行的区别&#xff1a; 单线程&#xff08;main&#xff09;&#xff1a; public static void test(){long a 0;long b 0;for(long i 0; i < 10000000000l; i){a;}for(long i 0; i < 10000000000l; i){b;}} 多…

MySQL Prepared语句(Prepared Statements)

在数据库应用中&#xff0c;很多SQL语句都会重复执行很多次&#xff0c;每次执行可能只是where条件中的变量值不同&#xff0c;但MySQL依然会解析SQL语法并生成执行计划。对于这类情况&#xff0c;可以利用prepared语句来避免重复解析SQL的开销。 文章目录 一、prepared语句优…

蓝桥杯(基础题)

试题 C: 好数 时间限制 : 1.0s 内存限制: 256.0MB 本题总分&#xff1a;10 分 【问题描述】 一个整数如果按从低位到高位的顺序&#xff0c;奇数位&#xff08;个位、百位、万位 &#xff09;上 的数字是奇数&#xff0c;偶数位&#xff08;十位、千位、十万位 &…

《系统分析与设计》实验-----在线书店系统 需求规格说明书 哈尔滨理工大学PLUS完善版

文章目录 需求规格说明书1&#xff0e;引言1.1编写目的1.2项目背景1.3定义1.4参考资料 2&#xff0e;任务概述2.1目标2.2运行环境2.3条件与限制 3&#xff0e;数据描述3.1静态数据3.2动态数据3.3数据库介绍3.4数据词典3.5数据采集 4&#xff0e;功能需求4.1功能划分4.2功能描述…

ES-全文搜索

模糊查询&#xff1a; 写数据通过id路由到master分片 查询数据到一个节点&#xff0c;该节点会作为一个调度节点判断负载等情况将请求转发到真正节点&#xff08;一般し轮询&#xff09;