HarmonyOS 鸿蒙Next Navigation Dialog模式下如何禁用手势返回

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

HarmonyOS 鸿蒙Next Navigation Dialog模式下如何禁用手势返回

官方的这个demo:

// Dialog NavDestination 
@Entry
@Component
struct Index {
  @Provide('NavPathStack') pageStack: NavPathStack = new NavPathStack()

  @Builder
  PagesMap(name: string) {
    if (name == 'DialogPage') {
      DialogPage()
    }
  }

  build() {
    Navigation(this.pageStack) {
      Button('Push DialogPage').margin(20).width('80%').onClick(() => {
        this.pageStack.pushPathByName('DialogPage', '');
      })
    }.mode(NavigationMode.Stack).title('Main').navDestination(this.PagesMap)
  }
}

@Component
export struct DialogPage {
  @Consume('NavPathStack') pageStack: NavPathStack;

  build() {
    NavDestination() {
      Stack({ alignContent: Alignment.Center }) {
        Column() {
          Text("Dialog NavDestination").fontSize(20).margin({ bottom: 100 })
          Button("Close").onClick(() => {
            this.pageStack.pop()
          }).width('30%')
        }
        .justifyContent(FlexAlign.Center)
        .backgroundColor(Color.White)
        .borderRadius(10)
        .height('30%')
        .width('80%')
      }.height("100%").width('100%')
    }.backgroundColor('rgba(0,0,0,0.5)').hideTitleBar(true).mode(NavDestinationMode.DIALOG)
  }
} 

在弹窗出现后,怎么禁用手势返回(或者系统导航返回按键)


更多关于HarmonyOS 鸿蒙Next Navigation Dialog模式下如何禁用手势返回的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

改成以下这样:

NavDestination() {
 Stack({ alignContent: Alignment.Center }) {
   Column() {
     Text("Dialog NavDestination")
       .fontSize(20)
       .margin({ bottom: 100 })
     Button("Close").onClick(() => {
       this.pageStack.pop()
     }).width('30%')
   }
   .justifyContent(FlexAlign.Center)
   .backgroundColor(Color.White)
   .borderRadius(10)
   .height('30%')
   .width('80%')
 }.height("100%").width('100%')
}
.backgroundColor('rgba(0,0,0,0.5)')
.hideTitleBar(true)
.mode(NavDestinationMode.DIALOG)
.onBackPressed(() => {
 console.log('自定义操作')
 return true
})

更多关于HarmonyOS 鸿蒙Next Navigation Dialog模式下如何禁用手势返回的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,Next Navigation Dialog模式下禁用手势返回可以通过配置系统属性或修改Dialog的显示属性来实现。具体操作步骤如下:

  1. Dialog配置:在创建或配置Next Navigation Dialog时,检查是否有提供禁用手势返回的选项。通常在Dialog的属性设置中,可以查找是否有与导航手势相关的配置项,如enableSwipeBack,并将其设置为false

  2. 系统属性调整:如果Dialog配置中没有直接提供禁用手势返回的选项,可能需要通过修改系统属性来实现。这通常涉及到对系统UI行为的深度定制,可能需要开发者权限,并直接修改系统配置文件或调用系统API。

  3. 事件拦截:在Dialog显示后,通过监听系统手势事件并进行拦截,可以阻止手势返回的操作。这通常需要在Dialog的代码中添加事件监听器,并在手势事件触发时执行拦截逻辑。

请注意,上述方法可能因鸿蒙系统版本或设备型号的不同而有所差异。如果直接操作无法生效,可能需要考虑通过更新系统或设备来支持更丰富的配置选项。

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

回到顶部