鸿蒙5.0开发常见问题【如何解决Web页面输入框拉起键盘后,页面头部被截断的问题?】
通过监听软键盘的弹出和收起,可以解决此问题:软键盘弹出时,将子窗口高度设置为屏幕高度减去软键盘高度;软键盘收起时,子窗口高度设置为屏幕高度。
问题现象
- 通过子窗口实现弹窗,弹窗中嵌入Web页面。
- Web页面中,点击TextInput输入框,键盘弹出。
- 子窗口上移后,Web页面头部被截断。
解决措施
通过监听软键盘的弹出和收起,可以解决此问题:软键盘弹出时,将子窗口高度设置为屏幕高度减去软键盘高度;软键盘收起时,子窗口高度设置为屏幕高度。参考代码如下:
// Sub-window page layout
import { webview } from '@kit.ArkWeb';
import { window } from '@kit.ArkUI';
@Entry
@Component
export struct SubWindowPage {
@State webViewVisibility: Visibility = Visibility.Visible;
private pageWidth = 320;
private pageHeight = 500;
private controller: webview.WebviewController = new webview.WebviewController();
@State flexAlign: FlexAlign = FlexAlign.Center;
@State screenHeight: number | string = '100%';
aboutToAppear() {
window.getLastWindow(this.getUIContext().getHostContext()).then(currentWindow => {
// Monitor keyboard pop-up and collapse
currentWindow.on('avoidAreaChange', async data => {
let property = currentWindow.getWindowProperties();
let avoidArea = currentWindow.getWindowAvoidArea(window.AvoidAreaType.TYPE_KEYBOARD);
this.screenHeight = this.getUIContext().px2vp(property.windowRect.height - avoidArea.bottomRect.height);
});
})
}
build() {
Stack() {
Column() {
Web({ src: $rawfile('index.html'), controller: this.controller })
.javaScriptAccess(true)
.fileAccess(false)
.zoomAccess(false)
.domStorageAccess(true)
.onlineImageAccess(true)
.horizontalScrollBarAccess(false)
.verticalScrollBarAccess(false)
.cacheMode(CacheMode.Online)
.width(this.pageWidth)
.height(this.pageHeight)
.border({ radius: 6 })
.visibility(this.webViewVisibility)
.backgroundColor(Color.Pink)
}
.justifyContent(this.flexAlign)
.alignItems(HorizontalAlign.Center)
.width('100%')
.height('100%')
}
.width('100%')
.height(this.screenHeight)
.backgroundColor('#999955')
.alignContent(Alignment.Center)
}
}
最后呢
很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。
而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点
如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。
针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细鸿蒙(OpenHarmony )手册(共计1236页)与鸿蒙(OpenHarmony )开发入门视频,帮助大家在技术的道路上更进一步。
- 《鸿蒙 (OpenHarmony)开发学习视频》
- 《鸿蒙生态应用开发V2.0白皮书》
- 《鸿蒙 (OpenHarmony)开发基础到实战手册》
- OpenHarmony北向、南向开发环境搭建
- 《鸿蒙开发基础》
- 《鸿蒙开发进阶》
- 《鸿蒙开发实战》
总结
鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发。
并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,未来将会支持 50 万款的应用。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行! 自↓↓↓拿
更多推荐
所有评论(0)