HarmonyOS鸿蒙Next中折叠屏键盘避让

HarmonyOS鸿蒙Next中折叠屏键盘避让 在直板手机中拉起软键盘会是内容区正常避让,但在折叠屏手机外屏上内容区会额外向上避让一段距离使两者之间有一块空白区(目测与软键盘高度一致)可以看到蒙层下面的内容,这种情况该怎么处理

5 回复

// 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) } }

这个弹框界面全屏百分之百,弹框内容单独UI控制,是不会造成你说的问题。可以从两个方面定位下问题,1.你的弹框布局界面的父布局约束条件。2.界面设置键盘的避让条件。

键盘避让详情参考: 【HarmonyOS NEXT】键盘遮挡输入框UI布局处理 | 华为开发者联盟 【HarmonyOS NEXT】键盘遮挡输入框UI布局处理-键盘弹出避免整体界面上移 | 华为开发者联盟

更多关于HarmonyOS鸿蒙Next中折叠屏键盘避让的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


找到一个可能的原因是键盘弹起时把我的整个页面给顶起来了,同时我还给内容区设置了一个offset所以才有可能出现这种问题,有没有办法让整个页面不被键盘顶起,这样就只有内容区因键盘弹起而移动。

我用的并不是自定义弹框而是组件导航。 mode(navdestinationmode.dialog) 做的形似弹框的页面,

在HarmonyOS鸿蒙Next中,折叠屏键盘避让功能通过智能识别屏幕折叠状态,自动调整键盘布局和显示区域,确保输入体验不受影响。系统会根据折叠角度动态调整键盘位置,避免键盘遮挡内容。开发者可通过适配API优化应用布局,确保在折叠屏设备上提供流畅的用户体验。

回到顶部