HarmonyOS 鸿蒙Next:promptAction.openCustomDialog实现由下往上弹出效果,添加滑动手势控制滑动范围
HarmonyOS 鸿蒙Next:promptAction.openCustomDialog实现由下往上弹出效果,添加滑动手势控制滑动范围
import { ComponentContent } from “@ohos.arkui.node”;
class Params {
text: string = “”
constructor(text: string) {
this.text = text;
}
} //传参
function buildText(params: Params) {
Row(){
Column() {
Text(params.text)
.fontSize(20)
.textAlign(TextAlign.Center)
.fontWeight(FontWeight.Bold)
.padding(8)
Text(‘方便为你提供本地新闻和天气信息,并且根据您的位置信息发现附近的免费WiFi’)
.fontSize(16)
.textAlign(TextAlign.Center)
.padding({ left:14,right:14})
.margin({top:-4})
Row({space:64}){
Button(“不允许”)
Button(“允许”)
}
.padding(24)
}
.width(“90%”)
.borderRadius(8)
.backgroundColor(’#FFF0F0F0’)
}
.height(“100%”)
.visibility(800)
// 定义进场出场转场动画效果
.transition(TransitionEffect.OPACITY.animation({duration: 800}).combine(TransitionEffect.translate({y: 100})))
} //自定义组件的内容
struct Index {
@State message: string = “允许“应用”在您使用该应用时访问您的位置吗?”
build() {
Row() {
Column() {
Button(“click me”)
.onClick(() => {
let uiContext = this.getUIContext();
let promptAction = uiContext.getPromptAction();
let contentNode =
new ComponentContent(uiContext, wrapBuilder(buildText), new Params(this.message)); //上下文、自定义节点、传参
try {
promptAction.openCustomDialog(contentNode);
} catch (error) {
let message = (error as BusinessError).message;
let code = (error as BusinessError).code;
console.error(OpenCustomDialog args error code is ${code}, message is ${message}
);
}
})
}
.width(‘100%’)
.height(‘100%’)
}
.height(‘100%’)
}
}
关于HarmonyOS 鸿蒙Next:promptAction.openCustomDialog实现由下往上弹出效果,添加滑动手势控制滑动范围的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。
其实要实现半模态的效果。只是bindSheet这需要绑定组件才能使用,我想自定义一个组件,通过事件来调起弹窗 bindSheet bindSheet(isShow: Optional<boolean>, builder: CustomBuilder, options?: SheetOptions)
给组件绑定半模态页面,点击后显示模态页面。
已经解决了,用 promptAction.openCustomDialog + PanGesture 可以实现