Skip to content

smart toast API for Kotlin

vincent(朱志强) edited this page Jun 9, 2024 · 16 revisions

返回

内置Toast

  • Classic Toast
    位置:支持底部、中央、顶部显示
    布局:默认没有icon,可设置icon并指定icon位置(文本左侧或右侧)
    用途:常规Toast
默认背景 设置背景、图标
图标位于左侧
设置背景、图标
图标位于右侧
  • Emotion Toast
    位置:始终居中显示
    布局:固定布局——icon + message,icon在上,message在下
    用途:带有情感色彩的Toast,如成功、失败、警告、禁止等等
信息 成功 错误

自定义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")