HarmonyOS 鸿蒙Next 已设置长度100%为何页面显示仍不到100% 首页视频商城我的等页面均显示不全
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
如果不行还可以尝试给Navigation组件加一个属性 hideTitleBar(true)
更多关于HarmonyOS 鸿蒙Next 已设置长度100%为何页面显示仍不到100% 首页视频商城我的等页面均显示不全的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next系统中,若已设置页面长度为100%但显示仍不到100%,可能是由于布局或视图容器的问题。以下是几种可能的原因及排查方向:
-
布局容器高度限制:检查页面布局中的根容器或父容器是否有固定高度或最大高度限制,导致子视图无法完全展开至100%。
-
视图溢出处理:查看是否设置了
overflow
属性,如hidden
、scroll
等,这会影响视图内容的显示方式。 -
内边距与边框:页面的内边距(padding)或边框(border)会占用额外空间,需确认这些属性是否导致显示区域减少。
-
子视图尺寸:确认页面内的子视图是否设置了固定尺寸或百分比尺寸,导致整体布局无法适应屏幕。
-
Flexbox或Grid布局:如果使用Flexbox或Grid布局,检查相关属性如
flex-grow
、grid-template-rows
等是否设置正确,确保子视图能正确填充空间。 -
屏幕适配:考虑不同设备屏幕尺寸和分辨率,确保页面布局具备良好的适配性。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html