自定义选择弹窗,半模态弹窗 原创
X叶域Q
发布于 2024-12-22 19:37
1.2w浏览
1收藏
自定义弹窗(CustomDialog)是一种十分实用的交互组件,它能够让开发者根据具体的业务场景,灵活地为用户呈现各种选择、提示等交互界面。
整体分为一个界面,三个弹窗,一个按钮组件。视频展示见我主页视频
一、自定义弹窗 (CustomDialog)
1. 定义要选择的数据类型和弹窗控制
首先,我们需要定义相关的数据类型以及用于控制弹窗的变量。在代码中,通过 @State
装饰器定义了两个重要的变量:
2. 绑定事件,点击打开弹窗
为了让用户能够触发弹窗的显示,需要将打开弹窗的操作与某个用户交互行为进行绑定,常见的就是点击事件。在代码示例中,使用了一个 Text
组件,并对其添加了点击事件处理逻辑。
3. 自定义弹窗组件
具体弹窗样式具体实现,可以设计不任意的UI界面实现
下面代码中使用了@ohos.events.emitter (Emitter)实现组件间通信,aboutToAppear自定义组件的生命周期中开始监听
下面主要是自定义了个统一的按钮组件,为了点击按钮组件(上图三个界面的按钮都用的同一块代码)的按钮触发不同界面的回调函数,具体实现见下方
通用按钮组件,自定义通用的按钮用于不同的界面,用emtter区分是哪个界面点击
二、基于半模态转场实现选择
能看出上面的弹窗是基于页面做固定定位的,位置无法变换,下面使用半模态转场实现半模态弹窗,更灵活的满足UI设计
1. 数据定义
用变量控制半模态弹窗的弹出
2. 弹窗绑定
给组件绑定半模态页面(一个组件不能绑定多个,会乱弹)
3. 自定义@Builder
两种不同的方式实现将选择的数据同步到主界面
下面代码可以灵活修改实现自定义弹窗,重点是确定后的数据修改,最后附上两个组件的代码
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
赞
2
收藏 1
回复
2
2
1
相关推荐
太详细了
如果能更详细一点就好了