智能客服
你问我答,随时在线为你解决问题
地图页面半模态交互是便捷生活类应用中高频使用场景之一,常用于地图导航类应用首页。
本示例基于BindSheet实现了地图应用的半模态交互页面,在页面上拉、下滑时,不影响用户与地图的交互,增强页面的灵活性,提升用户体验。

MapComponent({ mapOptions: this.mapOptions, mapCallback: this.callback })
.height(this.mapWindowHeight)
.margin({top: 0-this.heightVal})
.bindSheet($$this.isShow, this.SheetBuilder(), {
detents: [this.detentsMin, this.detentsMedium, this.detentsMax],
preferType: SheetType.BOTTOM,
showClose: false,
enableOutsideInteractive: true,
onWillDismiss: (() => {
}),
onDetentsDidChange: ((heightVal) => {
if (this.heightVal > 0) {
return;
}
this.heightVal = this.uiContext.px2vp(heightVal);
if (this.heightVal >= (this.detentsMedium.valueOf() as number)) {
return;
}
this.mapWindowHeight = this.windowHeight - this.heightVal + WINDOW_HEIGHT_OFFSET;
})
}); ├──entry/src/main/ets // 代码区 │ ├──entryability │ │ └─EntryAbility.ets │ ├──entrybackupability │ │ └─EntryBackupAbility.ets │ ├──pages │ │ └──MapHome.ets // 主页面 │ └──util │ └──LogUtil.ets // 日志工具类 └──entry/src/main/resources // 应用资源目录