色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙ArkTS容器組件:TabContent

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-07-15 15:04 ? 次閱讀

TabContent

僅在Tabs中使用,對應一個切換頁簽的內容視圖。

說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
該組件從API Version 7開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。

子組件

支持單個子組件。

說明:

可內置系統組件和自定義組件,支持渲染控制類型([if/else]、[ForEach]和[LazyForEach])。

接口

TabContent()

屬性

除支持[通用屬性]外,還支持以下屬性:

名稱參數類型描述
tabBarstring[Resource]
tabBar9+[SubTabBarStyle][BottomTabBarStyle]

說明:

  • TabContent組件不支持設置通用寬度屬性,其寬度默認撐滿Tabs父組件。
  • TabContent組件不支持設置通用高度屬性,其高度由Tabs父組件高度與TabBar組件高度決定。
  • vertical屬性為false值,交換上述2個限制。
  • TabContent組件不支持內容過長時頁面的滑動,如需頁面滑動,可嵌套List使用。

SubTabBarStyle9+

子頁簽樣式。

constructor

constructor(content: string | Resource)

SubTabBarStyle的構造函數。

參數:

參數名參數類型必填參數描述
contentstring[Resource]

of10+

static of(content: ResourceStr)

SubTabBarStyle的靜態構造函數。

參數:

參數名參數類型必填參數描述
content[ResourceStr]頁簽內的文字內容。

屬性

支持以下屬性:

名稱參數類型描述
indicator10+[IndicatorStyle]設置選中子頁簽的下劃線風格。子頁簽的下劃線風格僅在水平模式下有效。
selectedMode10+[SelectedMode]設置選中子頁簽的顯示方式。 默認值:SelectedMode.INDICATOR
board10+[BoardStyle]設置選中子頁簽的背板風格。子頁簽的背板風格僅在水平模式下有效。
labelStyle10+[LabelStyle]設置子頁簽的label文本和字體的樣式。
padding10+[Padding][Dimension]

IndicatorStyle10+對象說明

名稱參數類型必填描述
color[ResourceColor]下劃線的顏色和背板顏色。 默認值:#FF007DFF
height[Length]下劃線的高度(不支持百分比設置)。 默認值:2.0 單位:vp
width[Length]下劃線的寬度(不支持百分比設置)。 默認值:0.0 單位:vp**說明:**寬度設置為0時,按頁簽文本寬度顯示。
borderRadius[Length]下劃線的圓角半徑(不支持百分比設置)。 默認值:0.0 單位:vp
marginTop[Length]下劃線與文字的間距(不支持百分比設置)。 默認值:8.0 單位:vp

SelectedMode10+枚舉說明

名稱描述
INDICATOR使用下劃線模式。
BOARD使用背板模式。

BoardStyle10+對象說明

名稱參數類型必填描述
borderRadius[Length]背板的圓角半徑(不支持百分比設置)。 默認值:8.0 單位:vp

LabelStyle10+對象說明

名稱參數類型必填描述
overflow[TextOverflow]設置Label文本超長時的顯示方式。默認值是省略號截斷。
maxLinesnumber設置Label文本的最大行數。如果指定此參數,則文本最多不會超過指定的行。如果有多余的文本,可以通過textOverflow來指定截斷方式。默認值是1。
minFontSizenumber[ResourceStr]
maxFontSizenumber[ResourceStr]
heightAdaptivePolicy[TextHeightAdaptivePolicy]設置Label文本自適應高度的方式。默認值是最大行數優先。
font[Font]設置Label文本字體樣式。 當頁簽為子頁簽時,默認值是字體大小16.0fp、字體類型'HarmonyOS Sans',字體風格正常,字重正常。 當頁簽為底部頁簽時,默認值是字體大小10.0fp、字體類型'HarmonyOS Sans',字體風格正常,字重中等。

BottomTabBarStyle9+

底部頁簽和側邊頁簽樣式。

constructor

constructor(icon: string | Resource, content: string | Resource)

BottomTabBarStyle的構造函數。

參數:

參數名參數類型必填參數描述
iconstring[Resource]
textstring[Resource]

of10+

static of(icon: ResourceStr, text: ResourceStr) BottomTabBarStyle的靜態構造函數。

參數:

參數名參數類型必填參數描述
icon[ResourceStr]頁簽內的圖片內容。
text[ResourceStr]頁簽內的文字內容。

屬性

支持以下屬性:

名稱參數類型描述
padding10+[Padding][Dimension]
verticalAlign10+[VerticalAlign]設置底部頁簽的圖片、文字在垂直方向上的對齊格式。 默認值:VerticalAlign.Center
layoutMode10+[LayoutMode]設置底部頁簽的圖片、文字排布的方式,具體參照LayoutMode枚舉。 默認值:LayoutMode.VERTICAL
symmetricExtensible10+boolean設置底部頁簽的圖片、文字是否可以對稱借左右底部頁簽的空余位置中的最小值,僅fixed水平模式下在底部頁簽之間有效。 默認值:false
labelStyle10+[LabelStyle]設置子頁簽的label文本和字體的樣式。

LayoutMode10+枚舉說明

名稱描述
AUTO若頁簽寬度大于104vp,頁簽內容為左右排布,否則頁簽內容為上下排布。僅TabBar為垂直模式或Fixed水平模式時有效。
VERTICAL頁簽內容上下排布。
HORIZONAL頁簽內容左右排布。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

搜狗高速瀏覽器截圖20240326151450.png

示例

示例1

// xxx.ets
@Entry
@Component
struct TabContentExample {
  @State fontColor: string = '#182431'
  @State selectedFontColor: string = '#007DFF'
  @State currentIndex: number = 0
  private controller: TabsController = new TabsController()

  @Builder TabBuilder(index: number) {
    Column() {
      Image(this.currentIndex === index ? '/common/public_icon_on.svg' : '/common/public_icon_off.svg')
        .width(24)
        .height(24)
        .margin({ bottom: 4 })
        .objectFit(ImageFit.Contain)
      Text(`Tab${index + 1}`)
        .fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
        .fontSize(10)
        .fontWeight(500)
        .lineHeight(14)
    }.width('100%')
  }

  build() {
    Column() {
      Tabs({ barPosition: BarPosition.End, controller: this.controller }) {
        TabContent() {
          Column() {
            Text('Tab1')
              .fontSize(36)
              .fontColor('#182431')
              .fontWeight(500)
              .opacity(0.4)
              .margin({ top: 30, bottom: 56.5 })
            Divider()
              .strokeWidth(0.5)
              .color('#182431')
              .opacity(0.05)
          }.width('100%')
        }.tabBar(this.TabBuilder(0))

        TabContent() {
          Column() {
            Text('Tab2')
              .fontSize(36)
              .fontColor('#182431')
              .fontWeight(500)
              .opacity(0.4)
              .margin({ top: 30, bottom: 56.5 })
            Divider()
              .strokeWidth(0.5)
              .color('#182431')
              .opacity(0.05)
          }.width('100%')
        }.tabBar(this.TabBuilder(1))

        TabContent() {
          Column() {
            Text('Tab3')
              .fontSize(36)
              .fontColor('#182431')
              .fontWeight(500)
              .opacity(0.4)
              .margin({ top: 30, bottom: 56.5 })
            Divider()
              .strokeWidth(0.5)
              .color('#182431')
              .opacity(0.05)
          }.width('100%')
        }.tabBar(this.TabBuilder(2))

        TabContent() {
          Column() {
            Text('Tab4')
              .fontSize(36)
              .fontColor('#182431')
              .fontWeight(500)
              .opacity(0.4)
              .margin({ top: 30, bottom: 56.5 })
            Divider()
              .strokeWidth(0.5)
              .color('#182431')
              .opacity(0.05)
          }.width('100%')
        }.tabBar(this.TabBuilder(3))
      }
      .vertical(false)
      .barHeight(56)
      .onChange((index: number) = > {
        this.currentIndex = index
      })
      .width(360)
      .height(190)
      .backgroundColor('#F1F3F5')
      .margin({ top: 38 })
    }.width('100%')
  }
}

tabContent

示例2

// xxx.ets
@Entry
@Component
struct TabContentExample {
  @State fontColor: string = '#182431'
  @State selectedFontColor: string = '#007DFF'
  @State currentIndex: number = 0
  private controller: TabsController = new TabsController()

  @Builder TabBuilder(index: number) {
    Column() {
      Image(this.currentIndex === index ? '/common/public_icon_on.svg' : '/common/public_icon_off.svg')
        .width(24)
        .height(24)
        .margin({ bottom: 4 })
        .objectFit(ImageFit.Contain)
      Text('Tab')
        .fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
        .fontSize(10)
        .fontWeight(500)
        .lineHeight(14)
    }.width('100%').height('100%').justifyContent(FlexAlign.Center)
  }

  build() {
    Column() {
      Tabs({ barPosition: BarPosition.Start, controller: this.controller }) {
        TabContent()
          .tabBar(this.TabBuilder(0))
        TabContent()
          .tabBar(this.TabBuilder(1))
        TabContent()
          .tabBar(this.TabBuilder(2))
        TabContent()
          .tabBar(this.TabBuilder(3))
      }
      .vertical(true)
      .barWidth(96)
      .barHeight(414)
      .onChange((index: number) = > {
        this.currentIndex = index
      })
      .width(96)
      .height(414)
      .backgroundColor('#F1F3F5')
      .margin({ top: 52 })
    }.width('100%')
  }
}

tabContent

示例3

// xxx.ets
@Entry
@Component
struct TabBarStyleExample {
  build() {
    Column({ space: 5 }) {
      Text("子頁簽樣式")
      Column() {
        Tabs({ barPosition: BarPosition.Start }) {
          TabContent() {
            Column().width('100%').height('100%').backgroundColor(Color.Pink)
          }.tabBar(new SubTabBarStyle('Pink'))

          TabContent() {
            Column().width('100%').height('100%').backgroundColor(Color.Yellow)
          }.tabBar(new SubTabBarStyle('Yellow'))

          TabContent() {
            Column().width('100%').height('100%').backgroundColor(Color.Blue)
          }.tabBar(new SubTabBarStyle('Blue'))

          TabContent() {
            Column().width('100%').height('100%').backgroundColor(Color.Green)
          }.tabBar(new SubTabBarStyle('Green'))
        }
        .vertical(false)
        .scrollable(true)
        .barMode(BarMode.Fixed)
        .onChange((index: number) = > {
          console.info(index.toString())
        })
        .width('100%')
        .backgroundColor(0xF1F3F5)
      }.width('100%').height(200)
      Text("底部頁簽樣式")
      Column() {
        Tabs({ barPosition: BarPosition.End }) {
          TabContent() {
            Column().width('100%').height('100%').backgroundColor(Color.Pink)
          }.tabBar(new BottomTabBarStyle($r('sys.media.ohos_app_icon'), 'pink'))

          TabContent() {
            Column().width('100%').height('100%').backgroundColor(Color.Yellow)
          }.tabBar(new BottomTabBarStyle($r('sys.media.ohos_app_icon'), 'Yellow'))

          TabContent() {
            Column().width('100%').height('100%').backgroundColor(Color.Blue)
          }.tabBar(new BottomTabBarStyle($r('sys.media.ohos_app_icon'), 'Blue'))

          TabContent() {
            Column().width('100%').height('100%').backgroundColor(Color.Green)
          }.tabBar(new BottomTabBarStyle($r('sys.media.ohos_app_icon'), 'Green'))
        }
        .vertical(false)
        .scrollable(true)
        .barMode(BarMode.Fixed)
        .onChange((index: number) = > {
          console.info(index.toString())
        })
        .width('100%')
        .backgroundColor(0xF1F3F5)
      }.width('100%').height(200)
      Text("側邊頁簽樣式")
      Column() {
        Tabs({ barPosition: BarPosition.Start }) {
          TabContent() {
            Column().width('100%').height('100%').backgroundColor(Color.Pink)
          }.tabBar(new BottomTabBarStyle($r('sys.media.ohos_app_icon'), 'pink'))

          TabContent() {
            Column().width('100%').height('100%').backgroundColor(Color.Yellow)
          }.tabBar(new BottomTabBarStyle($r('sys.media.ohos_app_icon'), 'Yellow'))

          TabContent() {
            Column().width('100%').height('100%').backgroundColor(Color.Blue)
          }.tabBar(new BottomTabBarStyle($r('sys.media.ohos_app_icon'), 'Blue'))

          TabContent() {
            Column().width('100%').height('100%').backgroundColor(Color.Green)
          }.tabBar(new BottomTabBarStyle($r('sys.media.ohos_app_icon'), 'Green'))
        }
        .vertical(true).scrollable(true).barMode(BarMode.Fixed)
        .onChange((index: number) = > {
          console.info(index.toString())
        })
        .width('100%')
        .backgroundColor(0xF1F3F5)
      }.width('100%').height(400)
    }
  }
}

tabbarStyle

示例4

// xxx.ets
@Entry
@Component
struct TabsAttr {
  private controller: TabsController = new TabsController()
  @State indicatorColor: Color = Color.Blue;
  @State indicatorWidth: number = 40;
  @State indicatorHeight: number = 10;
  @State indicatorBorderRadius: number = 5;
  @State indicatorSpace: number = 10;
  @State subTabBorderRadius: number = 20;
  @State selectedMode: SelectedMode = SelectedMode.INDICATOR;
  private colorFlag: boolean = true;
  private widthFlag: boolean = true;
  private heightFlag: boolean = true;
  private borderFlag: boolean = true;
  private spaceFlag: boolean = true;

  build() {
    Column() {
      Button("下劃線顏色變化").width('100%').margin({ bottom: '12vp' })
        .onClick((event?: ClickEvent) = > {
          // 對Button組件的寬高屬性進行動畫配置
          if (this.colorFlag) {
            animateTo({
              duration: 1000, // 動畫時長
              curve: Curve.Linear, // 動畫曲線
              delay: 200, // 動畫延遲
              iterations: 1, // 播放次數
              playMode: PlayMode.Normal, // 動畫模式
              onFinish: () = > {
                console.info('play end')
              }
            }, () = > {
              this.indicatorColor = Color.Red
            })
          } else {
            animateTo({
              duration: 1000, // 動畫時長
              curve: Curve.Linear, // 動畫曲線
              delay: 200, // 動畫延遲
              iterations: 1, // 播放次數
              playMode: PlayMode.Normal, // 動畫模式
              onFinish: () = > {
                console.info('play end')
              }
            }, () = > {
              this.indicatorColor = Color.Yellow
            })
          }
          this.colorFlag = !this.colorFlag
        })
      Button("下劃線高度變化").width('100%').margin({ bottom: '12vp' })
        .onClick((event?: ClickEvent) = > {
          // 對Button組件的寬高屬性進行動畫配置
          if (this.heightFlag) {
            animateTo({
              duration: 1000, // 動畫時長
              curve: Curve.Linear, // 動畫曲線
              delay: 200, // 動畫延遲
              iterations: 1, // 播放次數
              playMode: PlayMode.Normal, // 動畫模式
              onFinish: () = > {
                console.info('play end')
              }
            }, () = > {
              this.indicatorHeight = 20
            })
          } else {
            animateTo({
              duration: 1000, // 動畫時長
              curve: Curve.Linear, // 動畫曲線
              delay: 200, // 動畫延遲
              iterations: 1, // 播放次數
              playMode: PlayMode.Normal, // 動畫模式
              onFinish: () = > {
                console.info('play end')
              }
            }, () = > {
              this.indicatorHeight = 10
            })
          }
          this.heightFlag = !this.heightFlag
        })
      Button("下劃線寬度變化").width('100%').margin({ bottom: '12vp' })
        .onClick((event?: ClickEvent) = > {
          // 對Button組件的寬高屬性進行動畫配置
          if (this.widthFlag) {
            animateTo({
              duration: 1000, // 動畫時長
              curve: Curve.Linear, // 動畫曲線
              delay: 200, // 動畫延遲
              iterations: 1, // 播放次數
              playMode: PlayMode.Normal, // 動畫模式
              onFinish: () = > {
                console.info('play end')
              }
            }, () = > {
              this.indicatorWidth = 30
            })
          } else {
            animateTo({
              duration: 1000, // 動畫時長
              curve: Curve.Linear, // 動畫曲線
              delay: 200, // 動畫延遲
              iterations: 1, // 播放次數
              playMode: PlayMode.Normal, // 動畫模式
              onFinish: () = > {
                console.info('play end')
              }
            }, () = > {
              this.indicatorWidth = 50
            })
          }
          this.widthFlag = !this.widthFlag
        })
      Button("下劃線圓角半徑變化").width('100%').margin({ bottom: '12vp' })
        .onClick((event?: ClickEvent) = > {
          // 對Button組件的寬高屬性進行動畫配置
          if (this.borderFlag) {
            animateTo({
              duration: 1000, // 動畫時長
              curve: Curve.Linear, // 動畫曲線
              delay: 200, // 動畫延遲
              iterations: 1, // 播放次數
              playMode: PlayMode.Normal, // 動畫模式
              onFinish: () = > {
                console.info('play end')
              }
            }, () = > {
              this.indicatorBorderRadius = 0
            })
          } else {
            animateTo({
              duration: 1000, // 動畫時長
              curve: Curve.Linear, // 動畫曲線
              delay: 200, // 動畫延遲
              iterations: 1, // 播放次數
              playMode: PlayMode.Normal, // 動畫模式
              onFinish: () = > {
                console.info('play end')
              }
            }, () = > {
              this.indicatorBorderRadius = 5
            })
          }
          this.borderFlag = !this.borderFlag
        })
      Button("下劃線間距變化").width('100%').margin({ bottom: '12vp' })
        .onClick((event?: ClickEvent) = > {
          // 對Button組件的寬高屬性進行動畫配置
          if (this.spaceFlag) {
            animateTo({
              duration: 1000, // 動畫時長
              curve: Curve.Linear, // 動畫曲線
              delay: 200, // 動畫延遲
              iterations: 1, // 播放次數
              playMode: PlayMode.Normal, // 動畫模式
              onFinish: () = > {
                console.info('play end')
              }
            }, () = > {
              this.indicatorSpace = 20
            })
          } else {
            animateTo({
              duration: 1000, // 動畫時長
              curve: Curve.Linear, // 動畫曲線
              delay: 200, // 動畫延遲
              iterations: 1, // 播放次數
              playMode: PlayMode.Normal, // 動畫模式
              onFinish: () = > {
                console.info('play end')
              }
            }, () = > {
              this.indicatorSpace = 10
            })
          }
          this.spaceFlag = !this.spaceFlag
        })
      Tabs({ barPosition: BarPosition.End, controller: this.controller }) {
        TabContent() {
          Column().width('100%').height('100%').backgroundColor(Color.Pink).borderRadius('12vp')
        }.tabBar(SubTabBarStyle.of('pink')
          .indicator({
            color: this.indicatorColor, //下劃線顏色
            height: this.indicatorHeight, //下劃線高度
            width: this.indicatorWidth, //下劃線寬度
            borderRadius: this.indicatorBorderRadius, //下劃線圓角半徑
            marginTop: this.indicatorSpace //下劃線與文字間距
          })
          .selectedMode(this.selectedMode)
          .board({ borderRadius: this.subTabBorderRadius })
          .labelStyle({})
        )

        TabContent() {
          Column().width('100%').height('100%').backgroundColor(Color.Yellow).borderRadius('12vp')
        }.tabBar('yellow')

        TabContent() {
          Column().width('100%').height('100%').backgroundColor(Color.Blue).borderRadius('12vp')
        }.tabBar('blue')

        TabContent() {
          Column().width('100%').height('100%').backgroundColor(Color.Green).borderRadius('12vp')
        }.tabBar('green')

        TabContent() {
          Column().width('100%').height('100%').backgroundColor(Color.Gray).borderRadius('12vp')
        }.tabBar('gray')

        TabContent() {
          Column().width('100%').height('100%').backgroundColor(Color.Orange).borderRadius('12vp')
        }.tabBar('orange')
      }
      .vertical(false)
      .scrollable(true)
      .barMode(BarMode.Scrollable)
      .barHeight(140)
      .animationDuration(400)
      .onChange((index: number) = > {
        console.info(index.toString())
      })
      .backgroundColor(0xF5F5F5)
      .height(320)
    }.width('100%').height(250).padding({ top: '24vp', left: '24vp', right: '24vp' })
  }
}

tabContent3

示例5

// xxx.ets
@Entry
@Component
struct TabsTextOverflow {
  @State message: string = 'Hello World'
  private controller: TabsController = new TabsController()
  @State subTabOverflowOpaque: boolean = true;
  build() {
    Column() {
      Tabs({ barPosition: BarPosition.Start, controller: this.controller }) {
        TabContent() {
          Column(){
            Text('單行省略號截斷').fontSize(30).fontColor(0xFF000000)
          }.width('100%').height('100%').backgroundColor(Color.Pink)
        }.tabBar(SubTabBarStyle.of('開始【單行省略號截斷單行省略號截斷單行省略號截斷單行省略號截斷單行省略號截斷單行省略號截斷單行省略號截斷單行省略號截斷單行省略號截斷單行省略號截斷】結束')
          .labelStyle({ overflow: TextOverflow.Ellipsis, maxLines: 1, minFontSize: 10, heightAdaptivePolicy: TextHeightAdaptivePolicy.MAX_LINES_FIRST,
            font: { size: 20 } }))
        TabContent() {
          Column()
          {
            Text('先縮小再截斷').fontSize(30).fontColor(0xFF000000)
          }.width('100%').height('100%').backgroundColor(Color.Pink)
        }.tabBar(SubTabBarStyle.of('開始【先縮小再截斷先縮小再截斷先縮小再截斷先縮小再截斷先縮小再截斷先縮小再截斷先縮小再截斷先縮小再截斷先縮小再截斷先縮小再截斷先縮小再截斷先縮小再截斷先縮小再截斷先縮小再截斷】結束')
          .labelStyle({ overflow: TextOverflow.Clip, maxLines: 1, minFontSize: 15, maxFontSize: 15, heightAdaptivePolicy: TextHeightAdaptivePolicy.MIN_FONT_SIZE_FIRST,
            font: { size: 20 } }))
        TabContent() {
          Column(){
            Text('先縮小再換行再截斷').fontSize(30).fontColor(0xFF000000)
          }.width('100%').height('100%').backgroundColor(Color.Pink)
        }.tabBar(SubTabBarStyle.of('開始【先縮小再換行再截斷先縮小再換行再截斷先縮小再換行再截斷先縮小再換行再截斷先縮小再換行再截斷先縮小再換行再截斷先縮小再換行再截斷先縮小再換行再截斷】結束')
          .labelStyle({ overflow: TextOverflow.Clip, maxLines: 2, minFontSize: 15, maxFontSize: 15, heightAdaptivePolicy: TextHeightAdaptivePolicy.MIN_FONT_SIZE_FIRST,
            font: { size: 20 } }))
        TabContent() {
          Column() {
            Text('換行').fontSize(30).fontColor(0xFF000000)
          }
          .width('100%').height('100%').backgroundColor(Color.Pink)
        }.tabBar(SubTabBarStyle.of('開始【換行換行換行換行換行換行換行換行換行換行換行換行換行換行換行】結束')
          .labelStyle({ overflow: TextOverflow.Clip, maxLines: 10, minFontSize: 10, heightAdaptivePolicy: TextHeightAdaptivePolicy.MAX_LINES_FIRST,
            font: { size: 20 } }))
      }
      .vertical(true).scrollable(true)
      .barMode(BarMode.Fixed)
      .barHeight(720)
      .barWidth(200).animationDuration(400)
      .onChange((index: number) = > {
        console.info(index.toString())
      })
      .height('100%').width('100%')
    }
    .height('100%')
  }
}

tabContent4

示例6

// xxx.ets
@Entry
@Component
struct TabContentExample6 {
  private controller: TabsController = new TabsController()
  @State text: string = "2"
  @State tabPadding: number = 0;
  @State symmetricExtensible: boolean = false;
  @State layoutMode: LayoutMode = LayoutMode.VERTICAL;
  @State verticalAlign: VerticalAlign = VerticalAlign.Center;

  build() {
    Column() {
      Row() {
        Button("padding+10 " + this.tabPadding)
          .width('47%')
          .height(50)
          .margin({ top: 5 })
          .onClick((event?: ClickEvent) = > {
            this.tabPadding += 10
          })
          .margin({ right: '6%', bottom: '12vp' })
        Button("padding-10 " + this.tabPadding)
          .width('47%')
          .height(50)
          .margin({ top: 5 })
          .onClick((event?: ClickEvent) = > {
            this.tabPadding -= 10
          })
          .margin({ bottom: '12vp' })
      }

      Row() {
        Button("文本增加 ")
          .width('47%')
          .height(50)
          .margin({ top: 5 })
          .onClick((event?: ClickEvent) = > {
            this.text += '文本增加'
          })
          .margin({ right: '6%', bottom: '12vp' })
        Button("文本重置")
          .width('47%')
          .height(50)
          .margin({ top: 5 })
          .onClick((event?: ClickEvent) = > {
            this.text = "2"
          })
          .margin({ bottom: '12vp' })
      }

      Row() {
        Button("symmetricExtensible改變 " + this.symmetricExtensible)
          .width('100%')
          .height(50)
          .margin({ top: 5 })
          .onClick((event?: ClickEvent) = > {
            this.symmetricExtensible = !this.symmetricExtensible
          })
          .margin({ bottom: '12vp' })
      }

      Row() {
        Button("layoutMode垂直 ")
          .width('47%')
          .height(50)
          .margin({ top: 5 })
          .onClick((event?: ClickEvent) = > {
            this.layoutMode = LayoutMode.VERTICAL;
          })
          .margin({ right: '6%', bottom: '12vp' })
        Button("layoutMode水平 ")
          .width('47%')
          .height(50)
          .margin({ top: 5 })
          .onClick((event?: ClickEvent) = > {
            this.layoutMode = LayoutMode.HORIZONTAL;
          })
          .margin({ bottom: '12vp' })
      }

      Row() {
        Button("verticalAlign朝上")
          .width('100%')
          .height(50)
          .margin({ top: 5 })
          .onClick((event?: ClickEvent) = > {
            this.verticalAlign = VerticalAlign.Top;
          })
          .margin({ bottom: '12vp' })
      }

      Row() {
        Button("verticalAlign居中")
          .width('100%')
          .height(50)
          .margin({ top: 5 })
          .onClick((event?: ClickEvent) = > {
            this.verticalAlign = VerticalAlign.Center;
          })
          .margin({ bottom: '12vp' })
      }

      Row() {
        Button("verticalAlign朝下")
          .width('100%')
          .height(50)
          .margin({ top: 5 })
          .onClick((event?: ClickEvent) = > {
            this.verticalAlign = VerticalAlign.Bottom;
          })
          .margin({ bottom: '12vp' })
      }


      Tabs({ barPosition: BarPosition.End, controller: this.controller }) {
        TabContent() {
          Column().width('100%').height('100%').backgroundColor(Color.Pink)
        }.tabBar(BottomTabBarStyle.of($r("sys.media.ohos_app_icon"), "1"))

        TabContent() {
          Column().width('100%').height('100%').backgroundColor(Color.Green)
        }.tabBar(BottomTabBarStyle.of($r("sys.media.ohos_app_icon"), this.text)
          .padding(this.tabPadding)
          .verticalAlign(this.verticalAlign)
          .layoutMode(this.layoutMode)
          .symmetricExtensible(this.symmetricExtensible))

        TabContent() {
          Column().width('100%').height('100%').backgroundColor(Color.Blue)
        }.tabBar(BottomTabBarStyle.of($r("sys.media.ohos_app_icon"), "3"))
      }
      .animationDuration(300)
      .height('60%')
      .backgroundColor(0xf1f3f5)
      .barMode(BarMode.Fixed)
    }
    .width('100%')
    .height(500)
    .margin({ top: 5 })
    .padding('24vp')
  }
}

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 組件
    +關注

    關注

    1

    文章

    513

    瀏覽量

    17855
  • 鴻蒙
    +關注

    關注

    57

    文章

    2371

    瀏覽量

    42910
收藏 人收藏

    評論

    相關推薦

    HarmonyOS/OpenHarmony原生應用-ArkTS萬能卡片組件Badge

    可以附加在單個組件上用于信息標記的容器組件。該組件從API Version 7開始支持。 支持單個子組件。子
    發表于 09-28 11:53

    鴻蒙ArkTS容器組件:Column

    沿垂直方向布局的容器
    的頭像 發表于 07-05 16:32 ?480次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:Column

    鴻蒙ArkTS容器組件:Flex

    以彈性方式布局子組件容器組件
    的頭像 發表于 07-08 10:19 ?532次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:Flex

    鴻蒙ArkTS容器組件:GridCol

    柵格子組件,必須作為柵格容器組件([GridRow])的子組件使用。
    的頭像 發表于 07-08 15:17 ?435次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:GridCol

    鴻蒙ArkTS容器組件:GridItem

    網格容器中單項內容容器
    的頭像 發表于 07-09 09:25 ?436次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:GridItem

    鴻蒙ArkTS容器組件:ListItemGroup

    組件用來展示列表item分組,寬度默認充滿[List]組件,必須配合List組件來使用。
    的頭像 發表于 07-10 09:20 ?715次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:ListItemGroup

    鴻蒙ArkTS容器組件:Navigator

    路由容器組件,提供路由跳轉能力。
    的頭像 發表于 07-10 14:55 ?444次閱讀

    鴻蒙ArkTS容器組件:Refresh

    可以進行頁面下拉操作并顯示刷新動效的容器組件
    的頭像 發表于 07-11 16:11 ?546次閱讀

    鴻蒙ArkTS容器組件:RowSplit

    將子組件橫向布局,并在每個子組件之間插入一根縱向的分割線。
    的頭像 發表于 07-11 22:25 ?358次閱讀

    鴻蒙ArkTS容器組件:Scroll

    可滾動的容器組件,當子組件的布局尺寸超過父組件的尺寸時,內容可以滾動。
    的頭像 發表于 07-12 15:24 ?1263次閱讀

    鴻蒙ArkTS容器組件:SideBarContainer

    提供側邊欄可以顯示和隱藏的側邊欄容器,通過子組件定義側邊欄和內容區,第一個子組件表示側邊欄,第二個子組件表示內容區。
    的頭像 發表于 07-18 15:46 ?575次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:SideBarContainer

    鴻蒙ArkTS容器組件:Stack

    堆疊容器,子組件按照順序依次入棧,后一個子組件覆蓋前一個子組件
    的頭像 發表于 07-15 18:23 ?908次閱讀

    鴻蒙ArkTS容器組件:Swiper

    滑塊視圖容器,提供子組件滑動輪播顯示的能力。
    的頭像 發表于 07-15 09:51 ?689次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:Swiper

    鴻蒙ArkTS容器組件:Tabs

    通過頁簽進行內容視圖切換的容器組件,每個頁簽對應一個內容視圖。
    的頭像 發表于 07-15 09:48 ?863次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:Tabs

    鴻蒙ArkTS容器組件:WaterFlow

    瀑布流容器,由“行”和“列”分割的單元格所組成,通過容器自身的排列規則,將不同大小的“項目”自上而下,如瀑布般緊密布局。
    的頭像 發表于 07-15 17:35 ?458次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>容器</b><b class='flag-5'>組件</b>:WaterFlow
    主站蜘蛛池模板: 久久麻豆亚洲AV成人无码国产| 帅哥操帅哥| 伊人久久大香网| 黄页网站18以下勿看免费| 午夜在线观看免费观看 视频| 国产高潮国产高潮久久久久久| 我把寡妇日出水好爽| 九色PORNY丨视频入口| 97国产蝌蚪视频在线观看| 日日干夜夜爽| 好男人视频免费高清在线观看www| 野花日本手机观看大全免费3| 嫩草影院未满十八岁禁止入内| 俄罗斯XBXBXB兽交| 一本道色综合手机久久| 欧美丰满熟妇无码XOXOXO| 国产精品欧美一区二区在线看| 在线播放日韩欧美亚洲日本| 欧美一区二区在线观看| 国产人成无码视频在线观看 | 欧美日韩国产高清综合二区| 国产白色视频在线观看w| 一个人免费播放高清在线观看| 免费人成在线观看视频不卡| 国产色播视频在线观看| 2020国产成人免费视频| 视频专区亚洲欧美日韩| 九九久久精品| 国产二级一片内射视频播放| 中文字幕专区高清在线观看| 小护士大pp| 涩涩涩涩爱网站| 麻美ゆま夫の目の前で犯| 国产毛片AV久久久久精品| 把腿张开老子CAO烂你动态图 | 狠狠爱亚洲五月婷婷av| 超碰在线观看| 97色伦图区97色伦综合图区| 欲乱艳荡少寡妇全文免费| 一二三四电影完整版免费观看| 亚色九九九全国免费视频|