ts-container-tabcontent.md 3.8 KB
Newer Older
Z
zengyawen 已提交
1 2 3 4
# TabContent

> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
Z
zengyawen 已提交
5

Z
zengyawen 已提交
6 7 8

仅在Tabs中使用,对应一个切换页签的内容视图。

Z
zengyawen 已提交
9 10

## 权限列表
Z
zengyawen 已提交
11 12 13



Z
zengyawen 已提交
14 15

## 子组件
Z
zengyawen 已提交
16 17 18 19

支持单个子组件。


Z
zengyawen 已提交
20 21 22
## 接口

TabContent()
Z
zengyawen 已提交
23

Z
zengyawen 已提交
24 25

## 属性
Z
zengyawen 已提交
26

Z
zengyawen 已提交
27 28
不支持触摸热区设置。

Z
zengyawen 已提交
29 30 31 32 33 34 35 36 37 38 39
| 名称 | 参数类型 | 默认值 | 描述 |
| -------- | -------- | -------- | -------- |
| tabBar | string&nbsp;\|&nbsp;{<br/>icon?:&nbsp;string,<br/>text?:&nbsp;string<br/>}<br/>\|&nbsp;[CustomBuilder](../../ui/ts-types.md#custombuilder类型8+)<sup>8+</sup> | - | 设置TabBar上显示内容。<br/>CustomBuilder:&nbsp;构造器,内部可以传入组件(API8版本以上适用)。<br/>>&nbsp;![icon-note.gif](public_sys-resources/icon-note.gif)&nbsp;**说明:**<br/>>&nbsp;如果icon采用svg格式图源,则要求svg图源删除其自有宽高属性值。如采用带有自有宽高属性的svg图源,icon大小则是svg本身内置的宽高属性值大小。 |

> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> - TabContent组件不支持设置通用宽度属性,其宽度默认撑满Tabs父组件。
> 
> - TabContent组件不支持设置通用高度属性,其高度由Tabs父组件高度与TabBar组件高度决定。


## 示例
Z
zengyawen 已提交
40

Z
zengyawen 已提交
41 42 43 44 45 46 47 48
```
@Entry
@Component
struct TabContentExample  {
  @State fontColor: string = 'rgba(0, 0, 0, 0.4)'
  @State selectedFontColor: string = 'rgba(10, 30, 255, 1)'
  @State currentIndex: number = 0
  private controller: TabsController = new TabsController()
Z
zengyawen 已提交
49
  @Builder TabBuilder(index: number) {
Z
zengyawen 已提交
50
    Column() {
Z
zengyawen 已提交
51 52 53 54
      Image(this.currentIndex === index ? '/resources/ic_public_contacts_filled_selected.png' : '/resources/ic_public_contacts_filled.png')
        .width(10)
        .height(10)
        .opacity(this.currentIndex === index ? 1 : 0.4)
Z
zengyawen 已提交
55
        .objectFit(ImageFit.Contain)
Z
zengyawen 已提交
56 57
      Text(`Tab${(index > 2 ? (index - 1) : index) + 1}`)
        .fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
Z
zengyawen 已提交
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
        .fontSize(10)
        .margin({top: 2})
    }
  }

  @Builder AddBuilder() {
    Column() {
      Image(this.currentIndex === 2 ? '/resources/ic_public_add_norm_filled_selected.png' : '/resources/ic_public_add_norm_filled.png')
        .width(this.currentIndex === 2 ? 26 : 24)
        .height(this.currentIndex === 2 ? 26 : 24)
        .opacity(this.currentIndex === 2 ? 1 : 0.4)
        .objectFit(ImageFit.Contain)
        .animation({duration: 200})
    }
  }

  build() {
    Column() {
Z
zengyawen 已提交
76
      Tabs({ barPosition: BarPosition.End, controller: this.controller }) {
Z
zengyawen 已提交
77 78 79 80
        TabContent() {
          Flex({justifyContent: FlexAlign.Center})) {
            Text('Tab1').fontSize(32)
          }
Z
zengyawen 已提交
81
        }.tabBar(this.TabBuilder(0))
Z
zengyawen 已提交
82 83 84 85 86

        TabContent() {
          Flex({justifyContent: FlexAlign.Center})) {
            Text('Tab2').fontSize(32)
          }
Z
zengyawen 已提交
87
        }.tabBar(this.TabBuilder(1))
Z
zengyawen 已提交
88 89 90 91 92

        TabContent() {
          Flex({justifyContent: FlexAlign.Center})) {
            Text('Add').fontSize(32)
          }
Z
zengyawen 已提交
93
        }.tabBar(this.AddBuilder())
Z
zengyawen 已提交
94 95 96 97 98

        TabContent() {
          Flex({justifyContent: FlexAlign.Center})) {
            Text('Tab3').fontSize(32)
          }
Z
zengyawen 已提交
99
        }.tabBar(this.TabBuilder(3))
Z
zengyawen 已提交
100 101 102 103 104

        TabContent() {
          Flex({justifyContent: FlexAlign.Center})) {
            Text('Tab4').fontSize(32)
          }
Z
zengyawen 已提交
105
        }.tabBar(this.TabBuilder(4))
Z
zengyawen 已提交
106 107 108 109 110 111 112 113 114 115 116 117
      }
      .vertical(false)
      .barWidth(300).barHeight(56)
      .onChange((index: number) => {
        this.currentIndex = index
      })
      .width('90%').backgroundColor('rgba(241, 243, 245, 0.95)')
    }.width('100%').height(200).margin({ top: 5 })
  }
}
```

Z
zengyawen 已提交
118
![zh-cn_image_0000001186585726](figures/zh-cn_image_0000001186585726.gif)