鸿蒙开发:自定义一个Toast

简介: 如果整个项目的toast样式都一样,直接在初始化中设置统一的属性即可,针对单独不一样的效果,可以单独设置。

前言


代码案例基于Api13。


系统的toast已经可以满足大部分的场景了,而且使用起来也是十分的简单,可以修改很多的可配置属性,简单的使用代码如下:


promptAction.showToast({ message: "toast提示" })


但是偏偏有一点实现不了,那就是圆角度数的设置,还有就是和icon结合使用的场景也无法满足,为了更好的适配UI的设计图,那么自定义一个Toast是在所难免的。


简单的实现效果如下,可以设置常见的圆角,背景,字体颜色大小等属性,也支持各种的位置设置,以及上下左右icon设置,如果提供的仍然无法满足需求,你可以通过自定义组件形式,自己绘制即可,相对来说,还是非常的灵活多变。



快速使用


目前已经上传到了中心仓库,大家可以远程进行依赖,中心仓库地址:


https://ohpm.openharmony.cn/#/cn/detail/@abner%2Ftoast


方式一:在Terminal窗口中,执行如下命令安装三方包,DevEco Studio会自动在工程的oh-package.json5中自动添加三方包依赖。


建议:在使用的模块路径下进行执行命令。

ohpm install @abner/toast


方式二:在工程的oh-package.json5中设置三方包依赖,配置示例如下:


"dependencies": { "@abner/toast": "^1.0.0"}


初始化


用来统一配置toast的样式,比如背景,圆角,字体颜色,大小等,如果默认样式已经满足,可不初始化,建议在AbilityStage里进行初始化。


toastInit({ toastAttribute: { backgroundColor: Color.Black, fontColor: Color.White } })


代码调用

1、普通提示

toast("普通提示")

2、更改背景

toast("更改背景", { backgroundColor: Color.Red, fontColor: Color.White })

3、更改圆角度数

toast("更改圆角度数", { borderRadius: 5 })

4、更改文字大小

toast("更改文字大小", { fontSize: 20 })

5、居中位置

toast("居中位置", { alignment: ToastAlignment.Center })

6、居上位置

toast("居上位置", { alignment: ToastAlignment.Top })

7、居下位置

toast("居下位置", { alignment: ToastAlignment.Bottom })

8、任意位置

toast("任意位置", { offsetX: 20, offsetY: 20 })

9、上面Icon

toast("上面Icon", {
  topIcon: $r("app.media.app_icon"),
  borderRadius: 10,
  padding: {
    left: 40,
    right: 40,
    bottom: 10
  }
})

10、下面Icon

toast("下面Icon", {
  bottomIcon: $r("app.media.app_icon"),
  borderRadius: 10,
  padding: {
    left: 40,
    right: 40,
    top: 10
  }
})

11、左面Icon

toast("左面Icon", {
  leftIcon: $r("app.media.app_icon"),
  borderRadius: 10,
  padding: {
    right: 40,
    left: 40,
    top: 20,
    bottom: 20
  }
})

12、右面Icon

toast("右面Icon", {
  rightIcon: $r("app.media.app_icon"),
  borderRadius: 10,
  padding: {
    right: 40,
    left: 40,
    top: 20,
    bottom: 20
  }
})

13、左右Icon

toast("左右Icon", {
  leftIcon: $r("app.media.app_icon"),
  rightIcon: $r("app.media.app_icon"),
  borderRadius: 10,
  padding: {
    right: 40,
    left: 40,
    top: 20,
    bottom: 20
  }
})

14、自定义视图

toast("自定义视图", {
  backgroundColor: Color.Transparent,
  padding: 0,
  view: wrapBuilder(ToastView)
})


属性介绍

ToastConfig属性


属性

类型

概述

isUserMainWindow

boolean

是使用主window还是子window

toastAttribute

ToastAttribute

toast配置属性


ToastAttribute属性


属性

类型

概述

msg

string/Resource

弹出内容

duration

number

弹出时间

autoCancel

boolean

点击外部是否隐藏

alignment

ToastAlignment

弹出位置

fontSize

number / string/ Resource

字体大小

textAlign

TextAlign

字体的居中方式

fontColor

ResourceColor

字体颜色

backgroundColor

ResourceColor

背景颜色

padding

Padding/Length/ LocalizedPadding

内边距

borderRadius

Length /BorderRadiuses /LocalizedBorderRadiuses

圆角度数

shadow

ShadowOptions / ShadowStyle

阴影

marginLeft

Length

距离左边

marginRight

Length

距离右边

offsetX

Length

x坐标

offsetY

Length

y坐标

leftIcon

PixelMap / ResourceStr / DrawableDescriptor

左边icon

topIcon

PixelMap / ResourceStr / DrawableDescriptor

上边icon

rightIcon

PixelMap / ResourceStr / DrawableDescriptor

右边icon

bottomIcon

PixelMap / ResourceStr / DrawableDescriptor

下边icon

iconWidth

Length

icon宽度

iconHeight

Length

icon高度

iconMarginTop

Length

icon距离顶部

iconMarginBottom

Length

icon距离底部

iconMarginLeft

Length

icon距离左边

iconMarginRight

Length

icon距离右边

view

WrappedBuilder<Object[]>

自定义组件


相关总结


如果整个项目的toast样式都一样,直接在初始化中设置统一的属性即可,针对单独不一样的效果,可以单独设置。


目前未在代码中封装常见的成功,失败还有loading视图,因为已经暴露了icon设置,可直接传递实现类似的功能,如果代码中提供的无法满足,可以通过自定义组件的形式实现。


目录
打赏
0
2
2
0
180
分享
相关文章
|
3天前
|
鸿蒙开发:自定义一个搜索模版
这样的一个模版,可以简单的分为,三个部分,分别是上边的搜索框,中间的历史搜索和下边的热门搜索,搜索框,我们直接可以使用系统的组件Search,历史搜索,由于是内容不一的搜索的内容,这里使用弹性布局Flex,下边的热门搜索,条目规格一致,这里我们直接使用Grid网格组件。
40 23
鸿蒙开发:自定义一个搜索模版
鸿蒙开发:ArkTs语言注释
关于注释,有一点需要注意,那就是,注释,不会被编译器或解释器执行,而本小节的重点并不是简单的教大家注释如何去写,而是在实际的项目中,我们能够真正的把注释投入到实际的开发中。
35 18
鸿蒙开发:ArkTs语言注释
鸿蒙开发:权限管理之权限声明
本文,主要简单概述了为什么要有权限管理,以及权限管理的声明原则,这些都是基本的概念内容,大家做为了解即可,重要的是怎么声明权限,在什么位置声明权限,这一点需要掌握。
36 16
鸿蒙开发:权限管理之权限声明
鸿蒙开发:console日志输出
针对初学者而言,大家只需要掌握住日志打印即可,等到了鸿蒙应用开发的时候,还有一个鸿蒙原生的打印工具HiLog,到时,我们也会详细的去讲述,也会针对HiLog,封装一个通用的工具类。
26 11
鸿蒙开发:console日志输出
|
2天前
|
鸿蒙开发:了解应用级配置信息
在实际的开发中,如果有共用的资源,建议大家都放到AppScope目录下,对于一些应用级别的信息,比如应用的名字,还有应用的图标,虽然说在Moulde下也可以配置,但是为了更方便的管理,这里比较推荐以AppScope目录下的app.json5为主,当然了,只是推荐,实际当中,两者都可以实现,大家选择其中一种方式即可。
26 12
鸿蒙开发:了解应用级配置信息
鸿蒙开发:ArkTs语言变量和常量
变量是一种用于存储数据的容器,并且其存储的数据值可以在程序执行过程中被改变,变量通常有一个名字(标识符),用于在程序中引用它。
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(中)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
217 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(中)
鸿蒙开发入门 | 开发第一个鸿蒙应用+页面跳转
准备好鸿蒙开发环境后,接下来就需要创建鸿蒙项目,掌握项目的创建过程以及配置。项目创建好后,需要把项目运行在模拟器上,鸿蒙的模拟和安卓模拟器有些不同,鸿蒙提供远程模拟器和本地模拟器,通过登录华为账号登录在线模拟器,使用DevEco Studio可将项目部署到远程模拟器中。
1335 1
鸿蒙开发入门 | 开发第一个鸿蒙应用+页面跳转
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(下)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
386 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(下)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(上)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
270 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(上)

热门文章

最新文章

  • 1
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    14
  • 2
    uniapp 极速上手鸿蒙开发
    111
  • 3
    【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
    31
  • 4
    EMAS 性能分析全面适配HarmonyOS NEXT,开启原生应用性能优化新纪元
    6
  • 5
    鸿蒙开发:了解@Builder装饰器
    23
  • 6
    鸿蒙开发:wrapBuilder传递参数
    77
  • 7
    鸿蒙web加载本地网页资源异常
    18
  • 8
    【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
    9
  • 9
    鸿蒙H5离线包技术分享
    13
  • 10
    【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
    15
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等