文档开发者中心
我的
|

ArkUI (方舟UI框架)

HarmonyOS 6

HarmonyOS 5

Web组件设置WebLayoutMode.FIT_CONTENT自适应网页布局实例

一、配置route_map.json,增加下面内容 

收起
自动换行
深色代码主题
复制
{
      "name": "WebCommponetPage",
      "pageSourceFile": "src/main/ets/pages/WebCommponetPage.ets",
      "buildFunction": "WebCommponetPageBuilder",
      "data": {
        "description": "this is WebCommponetPage"
      }
    }

二、在pages目录新建一个WebCommponetPage.ets文件,文件内容如下 :

收起
自动换行
深色代码主题
复制
import { webview } from '@kit.ArkWeb';

/**
 * Author:bolou
 * Creat time:2026/2/12 14:32
 * Describe:Web组件设置WebLayoutMode.FIT_CONTENT自适应网页布局实例
 */
@Builder
export function WebCommponetPageBuilder() {
  WebCommponetPage();
}


@Entry
@Component
struct WebCommponetPage {
  @State isShow: boolean = false;
  webviewController: webview.WebviewController = new webview.WebviewController();
  pathStack: NavPathStack = new NavPathStack();
  build() {
    NavDestination() {
      Column() {
        Text('Web组件设置WebLayoutMode.FIT_CONTENT自适应网页布局实例')
          .fontSize(16)
        Web({ src: $rawfile('index.html'), controller: this.webviewController })
         .onPageEnd(() => {
            this.isShow = true
            console.info('reader onPageEnd')
          })
          .width('100%')
          .height(this.isShow ? '100%' : '10%')
          .visibility(this.isShow ? Visibility.Visible : Visibility.Hidden)
          .layoutMode(this.isShow ? WebLayoutMode.FIT_CONTENT : WebLayoutMode.NONE)
      }
      .width('100%')
      .height('100%')
      .justifyContent(FlexAlign.Start)
      .padding(16)
    }
    .hideTitleBar(true)
    .onReady((context: NavDestinationContext) => {
      this.pathStack = context.pathStack;
    })
  }
}

上面的核心是:layoutMode(this.isShow ? WebLayoutMode.FIT_CONTENT : WebLayoutMode.NONE),是它负责自适应网页布局的.

三.在 Index.ets文件中随便找个元素,加入点击功能即可 

收起
自动换行
深色代码主题
复制
 
  Text("点我进web自适用布局 ")
    .onClick(() => {
        this.pathStack.pushPathByName('WebCommponetPage', null);
     })

好了,就这么简单.

点赞
收藏
回复
分享
举报
浏览82 编辑于2026-02-12 07:15上海
全部评论
最多点赞
最新发布
最早发布
暂无评论
暂无评论
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。