HarmonyOS 鸿蒙Next ArkTS Web组件无法占据100%
HarmonyOS 鸿蒙Next ArkTS Web组件无法占据100%
背景
使用ArkTS 用Tabs组件加载页面,第一个页面是加载地图,地图目前没有原生适配方案就用的H5加载,但是在Web加载的时候,Web高度不太对,始终无法进入状态栏那里。
给地图加一个背景色,green
地图页的代码
build() {
Stack({
alignContent:Alignment.Top
}) {
Web({
src: $rawfile("map.html"),
controller: this.webController
})
.height(CommonConstants.FULL_PARAM)
.width(CommonConstants.FULL_PARAM)
.padding(0)
.javaScriptAccess(true)
Text("111")
.backgroundColor("#59ff0000")
.fontSize(16)
.onTouch((e)=>{
e.stopPropagation
})
.height(CommonConstants.HALF_PARAM)
.width(CommonConstants.FULL_PARAM)
}
.backgroundColor(Color.White)
.height(CommonConstants.FULL_PARAM)
.width(CommonConstants.FULL_PARAM)
}
操作1,非全屏
windowClass.setWindowLayoutFullScreen(false)
如图:
<div id="container"></div>
可以看到绿色的实际范围是Web的整个范围,首先地图没有加载完整,少了一部分,在html代码里是这场操作,最后附上map.html代码。并且因为没有全屏的设置导致状态栏那里很丑(ArkTS状态栏无法使用)
操作2 设置全屏
windowClass.setWindowLayoutFullScreen(true)
其他代码未改动,如图:
Web页面还是没有进入状态栏下方,通过红色区域覆盖(Text组件)可知,全屏设置是有效的,Web组件在状态栏区域部分自动给处理了。
有没有大佬知道咋整?
最后附上map.html代码(高德的官方代码):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width"/>
<style>
html,
body,
#container {
width: 100%;
height: 100%;
background:green;
}
</style>
</head>
<body>
<div id="container"></div>
<script type="text/javascript">
window._AMapSecurityConfig = {
securityJsCode: "安全码",
};
</script>
<script src="https://webapi.amap.com/loader.js"></script>
<script type="text/javascript">
AMapLoader.load({
key: "key", //申请好的Web端开发者 Key,调用 load 时必填
version: "2.0", //指定要加载的 JS API 的版本,缺省时默认为 1.4.15
})
.then((AMap) => {
const map = new AMap.Map("container");
})
.catch((e) => {
console.error(e); //加载错误提示
});
</script>
</body>
</html>
更多关于HarmonyOS 鸿蒙Next ArkTS Web组件无法占据100%的实战教程也可以访问 https://www.itying.com/category-93-b0.html
经实际拖拉web其实占据满了,但是在状态栏那里就会变成灰色不知道咋回事
更多关于HarmonyOS 鸿蒙Next ArkTS Web组件无法占据100%的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
地图多了一抹绿色是css配置问题,加一个就行了。给忘了这个操作
*{
margin:0;
padding:0;
}
在HarmonyOS鸿蒙Next中,ArkTS的Web组件无法占据100%的宽度或高度,通常与布局设置或样式定义有关。以下是可能的原因及解决方案:
-
布局容器限制:Web组件所在的父容器可能没有设置为占据100%的宽度或高度。确保父容器(如
Column
、Row
或Stack
)的宽度和高度设置为100%
。 -
Web组件样式:检查Web组件本身的样式设置,确保其宽度和高度属性被正确设置为
100%
。例如:Web({ src: 'https://example.com' }) .width('100%') .height('100%')
-
页面布局限制:如果Web组件位于一个页面中,确保页面布局没有限制其尺寸。例如,页面根容器的宽度和高度也应设置为
100%
。 -
组件嵌套问题:如果Web组件嵌套在多层容器中,确保每一层容器都正确设置了尺寸,避免某一层容器的尺寸限制导致Web组件无法占据100%。
-
设备屏幕适配:在某些设备上,屏幕尺寸或分辨率可能影响组件的显示效果。确保布局适配不同设备的屏幕尺寸。
-
系统或框架限制:鸿蒙系统的某些版本或框架本身可能存在限制,导致Web组件无法完全占据100%。检查系统更新或框架文档,确认是否存在已知问题。
通过上述步骤,可以排查并解决Web组件无法占据100%的问题。