HarmonyOS 鸿蒙Next 从一个页面返回另一个页面展示不对

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

HarmonyOS 鸿蒙Next 从一个页面返回另一个页面展示不对

从一个web页面跳转到一个只有下半部分是web的页面,接着从该页面返回,展示的确实会下半部分这个web的内容

2 回复

试试这个demo

// index.ets
import { webview } from '@kit.ArkWeb';
import { router } from '@kit.ArkUI';

@Entry
@Component
struct WebComponent {
  controller: webview.WebviewController = new webview.WebviewController();

  build() {
    Column() {
      Button('下个页面')
        .onClick(()=>{
          router.pushUrl({
            url:"pages/Index1"
          })
        })
      Web({ src: 'www.baidu.com', controller: this.controller })
        .domStorageAccess(true)
    }
  }
}
// Index1.ets
import { webview } from '@kit.ArkWeb';
import { router } from '@kit.ArkUI';

@Entry
@Component
struct WebComponent {
  controller: webview.WebviewController = new webview.WebviewController();

  build() {
    Column() {
      Button('返回')
        .backgroundColor(Color.Green)
        .height('50%')
        .onClick(()=>{
          router.pushUrl({
            url:"pages/Index"
          })
        })
      Web({ src: 'www.baidu.com', controller: this.controller })
        .domStorageAccess(true)
    }
  }
}
//main_pages.json
{
  "src": [
    "pages/Index",
    "pages/Index1"
  ]
}

更多关于HarmonyOS 鸿蒙Next 从一个页面返回另一个页面展示不对的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,页面返回时展示不正确的问题通常与页面生命周期管理、数据绑定或UI状态恢复有关。以下是一些可能的原因及排查方向:

  1. 页面生命周期:确认在返回页面时,页面的onResume或类似生命周期方法是否被正确调用,且在该方法中正确恢复了页面状态。

  2. 数据绑定:检查数据绑定逻辑,确保在返回页面时,数据模型(如ViewModel)的状态正确更新并反映到UI上。

  3. UI状态恢复:如果页面包含滚动视图或其他可恢复状态的UI组件,确保在onResume或相关回调中正确恢复这些状态,如滚动位置。

  4. 页面栈管理:检查页面跳转逻辑,确保没有错误的页面被压入或弹出栈,导致返回时展示错误的页面。

  5. 动画与过渡效果:如果使用了页面间的动画或过渡效果,检查这些效果是否可能导致UI渲染问题。

  6. 内存管理:确认没有内存泄漏或对象被意外回收,导致页面状态丢失。

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

回到顶部