HarmonyOS 鸿蒙Next Tabs 控件 底部显示不全

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Tabs 控件 底部显示不全

Tabs 控件 底部显示不全
TabContent() 中的页面,底部显示不全 

2 回复

Scroll(this.scroller)的高度设百分比,和上面的相加为100%即可,可参考DEMO:

[@Entry](/user/Entry)
[@Component](/user/Component)
struct newPage {
 [@State](/user/State) fontColor: string = '#182431'
 [@State](/user/State) selectedFontColor: string = '#007DFF'
 [@State](/user/State) currentIndex: number = 0
 private controller: TabsController = new TabsController()
 scroller: Scroller = new Scroller()
 private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]

 [@Builder](/user/Builder)
 tabBuilder(index: number, name: string) {

   Column() {

     Text(name)

       .fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)

       .fontSize(16)

       .fontWeight(this.currentIndex === index ? 500 : 400)

       .lineHeight(22)

       .margin({ top: 17, bottom: 7 })

     Divider()

       .strokeWidth(2)

       .color('#007DFF')

       .opacity(this.currentIndex === index ? 1 : 0)

   }.width('100%')

 }

 build() {

   Column() {

     Tabs({ barPosition: BarPosition.End, index: this.currentIndex, controller: this.controller }) {

       TabContent() {

         Column() {

           Row() {

             Text('首页').align(Alignment.Center)

           }
           .justifyContent(FlexAlign.Center)

           .height('10%') //上面的设10%

           .width('100%')

           .padding({ left: 10, right: 10 })

           .backgroundColor(Color.Green)

           Scroll(this.scroller) {

             Column() {

               ForEach(this.arr, (item: number) => {

                 Text(item.toString())

                   .width('90%')

                   .height(150)

                   .backgroundColor(0xFFFFFF)

                   .borderRadius(15)

                   .fontSize(16)

                   .textAlign(TextAlign.Center)

                   .margin({ top: 10 })

               }, (item: string) => item)

             }.width('100%')

           }.height('90%') //Scroll设90%

           .scrollable(ScrollDirection.Vertical) // 滚动方向纵向

           .friction(0.6)

           .edgeEffect(EdgeEffect.None)

         }

       }

       .tabBar(this.tabBuilder(0, 'green'))

       TabContent() {

         Column().width('100%').height('100%').backgroundColor('#007DFF')

       }.tabBar(this.tabBuilder(1, 'blue'))

     }
     .vertical(false)

     .barMode(BarMode.Fixed)

     .barWidth(360)

     .barHeight(56)

     .animationDuration(400)

     .onChange((index: number) => {

       this.currentIndex = index

     })

     .width('100%')

     .height('100%')

     .backgroundColor('#F1F3F5')

   }.width('100%').height('100%')

 }
}

更多关于HarmonyOS 鸿蒙Next Tabs 控件 底部显示不全的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next Tabs 控件底部显示不全的问题,通常是由于布局配置不当或Tabs控件内部元素高度计算有误导致的。

  1. 检查布局文件:首先确认Tabs控件在布局文件中的定义,特别是其高度和底部边距设置。确保Tabs控件没有被其他视图遮挡,且其高度足够容纳所有Tab项。

  2. 调整Tab项高度:如果Tabs控件内部Tab项内容较多,导致单个Tab项高度过大,超出了屏幕可视范围,可以尝试调整Tab项布局或内容,减少其高度。

  3. 滚动视图:如果Tabs控件内容过多,考虑使用滚动视图(ScrollView)来包裹Tabs控件,允许用户通过滚动查看全部内容。

  4. 自定义Tabs样式:如果上述方法无效,可以尝试自定义Tabs控件的样式,调整其内部元素(如Tab指示器、Tab文本等)的间距和大小,以确保底部内容能够完整显示。

  5. 更新鸿蒙系统:确保鸿蒙系统版本为最新,以获取最新的系统修复和优化。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部