ArkUI项目实战之基于eTS实现第三方分享弹出框(一) 原创 精华
ArkUI项目实战之基于eTS实现第三方分享弹出框(一)
前言
之前做#HarmonyOS技术训练营#基于JS实现的AI作诗应用的时候发现官方目前还不支持将内容分享至第三方应用,便有了开发这个组件的想法(后面听说官方接下来也将支持第三方分享弹出框了)。该项目为笔者花了大概一周的时间,文章将分为上下两部分,分别实现基本布局、Swiper滑动组件,一步一步带你玩转ArkUI框架开发!
概述
模拟鸿蒙操作系统上的分享弹框组件
演示效果
如下图所示,点击分享图标的时候(这里为一个Button按钮)弹出分享框,再次点击向下箭头时退出弹窗,不可通过点击遮障层退出,左右滑动可切换分页
关键代码
首先我们对弹出框的UI界面的布局进行分析,可以将布局分为两层,上面一层为一个箭头图标,下面则为显示可分享应用的区域,按照4*2进行排列。参考代码如下:
1.在index.ets中添加一个Button
按钮,显示<font color=“red”>第三方分享弹出框</font>
2.新建一个自定义弹窗,并且为Button添加点击事件,点击时弹出弹窗
其中布局关系如下图所示,由于箭头图标和下面蓝色显示区域为垂直方向布局,所以我们使用Column容器将两者包裹起来,使用Row布局容器展示箭头图片并设置居中显示,使用Flex弹性布局容器包裹多个Item,其中direction参数设置主轴为水平方向,wrap参数设置为多行排列。每个Item由图片以及文本上下分布组成,使用Column容器进行包裹
因为添加多个Item时,会造成代码过于冗余,而每个Item的结构都是一样的,所以我们可以自定义一个shareItem
组件
传入imgSrc
和text
参数即可
此时弹出框默认在屏幕中间显示,并且点击遮障层可退出弹窗,在实例化构建自定义弹窗时添加以下属性:
可以看到此时弹窗已经在底部居中显示了,但是左右边框距离屏幕留有空间,再添加customStyle
属性并设置为true
,允许自定义弹窗样式
由于添加自定义样式属性后,弹框的基本样式失效,我们需要对其设置背景颜色以及边框圆角
最终实现效果如下图所示:
由于目前eTS暂不支持设置边框部分圆角,这与鸿蒙系统实现的效果有一定区别,后期加入支持之后可进行优化
参考资料
1、@Component-组件化-声明式语法-基于TS扩展的声明式开发范式-UI开发-基于JS开发-开发-HarmonyOS应用开发 | HarmonyOS
2、@CustomDialog-组件化-声明式语法-基于TS扩展的声明式开发范式-UI开发-基于JS开发-开发-HarmonyOS应用开发 | HarmonyOS
结语
本期到这里结束啦!感谢看到最后的小伙伴们,不知道有没有讲得不清楚的或者写得不好的地方,欢迎指出来哦!下一期我们将使用Swiper滑动组件实现弹窗的滑动分页功能!
为了更好的UI,能自定义的界面肯定是必要的
可以用Panel容器组件试试😉😉😉——Panel可滑动面板
感谢!当时开发的时候有注意到,回头可以试试