-
Notifications
You must be signed in to change notification settings - Fork 80
smart toast API for Kotlin
vincent(朱志强) edited this page Jun 9, 2024
·
16 revisions
-
Classic Toast
位置:支持底部、中央、顶部显示
布局:默认没有icon,可设置icon并指定icon位置(文本左侧或右侧)
用途:常规Toast
默认背景 | 设置背景、图标 图标位于左侧 |
设置背景、图标 图标位于右侧 |
---|---|---|
-
Emotion Toast
位置:始终居中显示
布局:固定布局——icon + message,icon在上,message在下
用途:带有情感色彩的Toast,如成功、失败、警告、禁止等等
信息 | 成功 | 错误 |
---|---|---|
- 自定义布局
定义一个类,用
@CustomizedToast
注解修饰,指定一个别名,并实现SimpleToastDefinition
接口
@CustomizedToast(alias = "sample")
class SampleToast : SimpleToastDefinition {
//返回自定义布局,module开启viewBinding特性后,AndroidStudio会为每个xml布局文件生成ViewBinding类,
//直接返回该对象
override fun toastView(inflater: LayoutInflater): ViewBinding =
SampleToastLayoutBinding.inflate(inflater)
//将消息文本设置给messageView
override fun applyConfig(viewBinding: ViewBinding, config: ToastConfig) {
(viewBinding as SampleToastLayoutBinding).apply {
smartToastMessage.text = config.message
}
}
}
使用注解处理器自动生成代码
kapt "io.github.vincent-series:annotation-compiler:1.1.1"
在生成类CustomizedToastFamily中,会根据该Toast的别名生成一个同名方法来引用该Toast。
CustomizedToastFamily.sample().show("I'm a sample toast")
1