HarmonyOS 鸿蒙Next 已设置长度100%为何页面显示仍不到100% 首页视频商城我的等页面均显示不全

发布于 1周前 作者 sinazl 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 已设置长度100%为何页面显示仍不到100% 首页视频商城我的等页面均显示不全

import { Home } from '../pages/tabs/Home'
import { Mine } from '../pages/tabs/Mine'
import { Shop } from '../pages/tabs/Shop'
import { VideoTab } from '../pages/tabs/VideoTab'

@Entry
@Component
struct MainPage {
  @State currentIndex: number = 0
  @State Build: Array<TextObj> = [{
    text: '首页',
    num: 0,
    imageYes: $r('app.media.home_yes'),
    imageNo: $r('app.media.home_no')
  }, {
    text: '视频',
    num: 1,
    imageYes: $r('app.media.home_yes'),
    imageNo: $r('app.media.video_home_icn')
  }, {
    text: '商城',
    num: 2,
    imageYes: $r('app.media.shop_yes'),
    imageNo: $r('app.media.shop_no')
  }, {
    text: '我的',
    num: 3,
    imageYes: $r('app.media.user_yes'),
    imageNo: $r('app.media.user_no')
  },]

  @Builder
  NavigationTitle() {
    Column() {
      Text('Title').fontColor('#182431').fontSize(20).lineHeight(41).fontWeight(300)
    }.alignItems(HorizontalAlign.Start)
  }

  @Builder
  NavigationMenus() {
    Row() {
      if (this.currentIndex == 0) {
        Image($r('app.media.home_no')).width(24).height(24).margin({ left: 24 })
      } else if (this.currentIndex == 1) {
        Image($r('app.media.home_no')).width(24).height(24).margin({ left: 24 })
      } else if (this.currentIndex == 2) {
        Image($r('app.media.home_no')).width(24).height(24).margin({ left: 24 })
      } else if (this.currentIndex == 3) {
        Image($r('app.media.home_no')).width(24).height(24).margin({ left: 24 })
      } else {
        Image($r('app.media.home_no')).width(24).height(24).margin({ left: 24 })
      }
    }
  }

  @Builder
  show() {
    if (this.currentIndex == 0) {
      Home();
    } else if (this.currentIndex == 1) {
      VideoTab();
    } else if (this.currentIndex == 2) {
      Shop();
    } else if (this.currentIndex == 3) {
      Mine();
    } else {
      Home();
    }
  }

  @Builder
  NavigationToolbar() {
    Flex({ direction: FlexDirection.Row, justifyContent: FlexAlign.SpaceAround }) {
      ForEach(this.Build, (item: TextObj) => {
        Column() {
          Image(this.currentIndex == item.num ? item.imageYes : item.imageNo).width(24).height(24)
          Text(item.text)
            .fontColor(this.currentIndex == item.num ? '#007DFF' : '#182431')
            .fontSize(10)
            .lineHeight(14)
            .fontWeight(500)
            .margin({ top: 3 })
        }.height(56).onClick(() => {
          this.currentIndex = item.num
        })
      })
    }
  }

  build() {
    Column() {
      Navigation() {
        this.show();
      }
      .title(this.NavigationTitle)
      .menus(this.NavigationMenus)
      .titleMode(NavigationTitleMode.Mini)
      .toolBar(this.NavigationToolbar)
      .toolbarConfiguration(this.NavigationToolbar)
      .hideTitleBar(false)
      .hideToolBar(false)
      .onTitleModeChange((titleModel: NavigationTitleMode) => {
        console.info('titleMode' + titleModel)
      })
    }.width('100%').height('100%').backgroundColor(Color.Blue).backgroundColor('#F1F3F5')
  }
}

class TextObj {
  text: string = '';
  num: number = 0;
  imageYes: Resource = $r('app.media.home_yes');
  imageNo: Resource = $r('app.media.home_no');
}


更多关于HarmonyOS 鸿蒙Next 已设置长度100%为何页面显示仍不到100% 首页视频商城我的等页面均显示不全的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
可能是由于底部tab菜单占据了屏幕的一部分,可以将tab背景色设置为透明,然后将页面高度设置为超过100%,

如果不行还可以尝试给Navigation组件加一个属性 hideTitleBar(true)

更多关于HarmonyOS 鸿蒙Next 已设置长度100%为何页面显示仍不到100% 首页视频商城我的等页面均显示不全的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,若已设置页面长度为100%但显示仍不到100%,可能是由于布局或视图容器的问题。以下是几种可能的原因及排查方向:

  1. 布局容器高度限制:检查页面布局中的根容器或父容器是否有固定高度或最大高度限制,导致子视图无法完全展开至100%。

  2. 视图溢出处理:查看是否设置了overflow属性,如hiddenscroll等,这会影响视图内容的显示方式。

  3. 内边距与边框:页面的内边距(padding)或边框(border)会占用额外空间,需确认这些属性是否导致显示区域减少。

  4. 子视图尺寸:确认页面内的子视图是否设置了固定尺寸或百分比尺寸,导致整体布局无法适应屏幕。

  5. Flexbox或Grid布局:如果使用Flexbox或Grid布局,检查相关属性如flex-growgrid-template-rows等是否设置正确,确保子视图能正确填充空间。

  6. 屏幕适配:考虑不同设备屏幕尺寸和分辨率,确保页面布局具备良好的适配性。

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

回到顶部