龙空技术网

「华为鸿蒙应用开发 10」JavaScript UI常用容器组件Tabs

乐其观察 594

前言:

目前你们对“js容器宽度”可能比较珍视,姐妹们都需要分析一些“js容器宽度”的相关知识。那么小编也在网上汇集了一些有关“js容器宽度””的相关文章,希望朋友们能喜欢,你们一起来学习一下吧!

本章目标:

1 了解常用容器组件Tabs

2 对鸿蒙应用开发中的容器组件有更进一步的深入了解

前面章节关于组件及容器组件的介绍:

「华为鸿蒙应用开发 6」JavaScript UI组件概述及常用组件List

「华为鸿蒙应用开发 7」JavaScript UI组件的属性、事件和方法(这章节有讲到Dialog)

[华为鸿蒙应用开发 8](稳了,鸿蒙3.0要来)JS UI常用容器组件Form

「华为鸿蒙应用开发 9」JavaScript UI常用容器组件Stepper

前面的章节我们已经介绍了常用容器组件List(列表)、Dialog(弹窗)、Form(表单)、Stepper(分步),现在我们就来继续介绍下另外一个常用的容器组件Tabs(页签)。

Tabs是一种常见的界面导航结构。通过页签容器,用户可以快捷地访问应用的不同模块。

Tabs的属性

除支持通用属性外,还支持如下属性:

名称

类型

默认值

必填

描述

index

number

0

当前处于激活态的tab索引。

vertical

boolean

false

是否为纵向的tab,默认为false,可选值为:

false:tabbar和tabcontent上下排列。true:tabbar和tabcontent左右排列。Tabs的事件

除支持通用事件外,还支持如下事件:

名称

参数

描述

change

{ index: indexValue }

tab页签切换后触发。

说明

动态修改index值不会触发该回调。

1 创建Tabs

我们可以创建一个新项目,或者使用之前创建的项目。这里我们就以之前创建的项目Components为例。首先我们在DevEco Studio中打开该项目,在项目窗口中右键单击pages目录,新建一个JS Page,取名tabspage

在pages > tabspage > tabspage.hml文件中,写入如下代码

<div class="container">    <tabs>        <tab-bar>            <text>第一页</text>            <text>第二页</text>        </tab-bar>        <tab-content>            <div class="text">                <text>第一页的内容</text>            </div>            <div class="text">                <text>第二页的内容</text>            </div>        </tab-content>    </tabs></div>

在pages > tabspage > tabspage.css文件中,写入如下代码

.container {    flex-direction: column;    justify-content: center;    align-items: center;}.text {    width: 100%;    height: 100%;    justify-content: center;    align-items: center;}

打开Previewer(预览器)运行程序

2 设置Tabs方向

Tabs默认展示索引为index的标签及内容。通过设置vertical属性使组件纵向展示。

修改pages > tabspage > tabspage.hml文件中,写入如下代码

<div class="container">    <tabs index="1" vertical="true">        <tab-bar>            <text>第一页</text>            <text style="margin-top: 60px;">第二页</text>        </tab-bar>        <tab-content>            <div class="text">                <text>第一页的内容</text>            </div>            <div class="text">                <text>第二页的内容</text>            </div>        </tab-content>    </tabs></div>

注意:索引 index是从0开始计数的。

在Previewer中运行程序

3 设置tab-bar和tab-content

tab-bar除支持通用属性外,还支持如下属性:

名称

类型

默认值

必填

描述

mode

string

scrollable

设置组件宽度的可延展性。可选值为:

scrollable:子组件宽度为实际设置的宽度,当宽度之和(包括margin边距)大于tab-bar的宽度时,子组件可以横向滑动。fixed:子组件宽度均分tab-bar的宽度。

tabcontent除支持通用属性外,还支持如下属性:

名称

类型

默认值

必填

描述

scrollable

boolean

true

是否可以通过左右滑动进行页面切换。默认为true,设置为false后,页面的切换只能通过tab-bar的点击实现。

修改pages > tabspage > tabspage.hml文件中,写入如下代码

<div class="container">    <tabs>        <tab-bar mode="fixed">            <text>第一页</text>            <text>第二页</text>        </tab-bar>        <tab-content scrollable="false">            <div class="text">                <text>第一页的内容</text>            </div>            <div class="text">                <text>第二页的内容</text>            </div>        </tab-content>    </tabs></div>

在Previewer中运行程序,可以看到,tab-bar的子组件均分,tab-content不可以进行左右滑动切换内容。

4 添加事件

可以为Tabs添加change事件,实现页签切换后显示当前页签索引的功能。

修改pages > tabspage > tabspage.hml文件中,写入如下代码

<div class="container">    <tabs onchange="change">        <tab-bar mode="fixed">            <text>第一页</text>            <text>第二页</text>        </tab-bar>        <tab-content scrollable="false">            <div class="text">                <text>第一页的内容</text>            </div>            <div class="text">                <text>第二页的内容</text>            </div>        </tab-content>    </tabs></div>

修改pages > tabspage > tabspage.js文件中,写入如下代码

import prompt from '@system.prompt';export default {    change(e) {        prompt.showToast({            message: '现在的索引:' + e.index        })    }}

在Previewer中运行程序

至此,Tabs的基本用法就介绍到这里, 一定要自己动手多写代码,多体会。

标签: #js容器宽度