本文概述
尽管大多数Toast通知库都已过时, 但已改用包含Toast的新设计支持库。由于这个原因, 不再积极维护许多库的开发, 但是它们的工作相当不错(还有其他项目仍在维护中)!如果你正在寻找建议使用哪个第三方库在Android中实现自定义Toast通知的建议, 那么你来对地方了。
在此顶部, 我们将与你共享7个最不重要的库, 以构建自定义/默认敬酒通知, 以显示在你的本机android应用程序中。
7. Dynamic Toasts
一个简单的库, 可在Android 9+(姜饼或以上)设备上显示带有图标和文字的主题Toast。从v0.4.0开始, 它使用26.x.x支持库, 因此, 最低SDK将为Android 14+(ICS或更高版本)。从v2.0.0开始, 它使用AndroidX, 因此, 请先将你的项目迁移到AndroidX。它有几种根据需要显示 Toasty的方法。每个方法都返回一个Toast对象, 可以进一步对其进行自定义。用于自定义Toast的可选配置, 例如自定义背景色或可绘制, 自定义文本大小, 字体或图标大小等。可以在应用程序中的任何位置调用各种方法以进行自定义。
DynamicToast.Config.getInstance()
// Background color for default toast.
.setDefaultBackgroundColor(@ColorInt int defaultBackgroundColor)
// Tint color for default toast.
.setDefaultTintColor(@ColorInt int defaultTintColor)
// Background color for error toast.
.setErrorBackgroundColor(@ColorInt int errorBackgroundColor)
// Background color for success toast.
.setSuccessBackgroundColor(@ColorInt int successBackgroundColor)
// Background color for warning toast.
.setWarningBackgroundColor(@ColorInt int warningBackgroundColor)
// Custom icon for error toast. Pass `null` to use default icon.
.setErrorIcon(@Nullable Drawable errorIcon)
// Custom icon for success toast. Pass `null` to use default icon.
.setSuccessIcon(@Nullable Drawable successIcon)
// Custom icon for warning toast. Pass `null` to use default icon.
.setWarningIcon(@Nullable Drawable warningIcon)
// Disable icon for all the toasts.
.setDisableIcon(boolean disableIcon)
// Custom icon size in `pixels` for all the toasts.
.setIconSize(int iconSize)
// Custom text size in `SP` for all the toasts.
.setTextSize(int textSize)
// Custom text typeface for all the toasts. Pass `null` to use system typeface.
.setTextTypeface(@Nullable Typeface textTypeface)
// Custom background drawable for all the toasts. Pass `null` to use default background.
.setToastBackground(@Nullable Drawable toastBackground)
// Apply customisations.
.apply();
6. Noty
一个简单的库, 用于为Android创建动画警告/对话框/警报。
5. SimpleToast
SimpleToast是Android的通知库(例如Toast)。该API与Toast API一样简单。使用默认图标为任何CharSequence创建一个SimpleToast:
SimpleToast.ok(Context, CharSequence);
SimpleToast.error(Context, CharSequence);
SimpleToast.info(Context, CharSequence);
SimpleToast.muted(Context, CharSequence);
SimpleToast.warning(Context, CharSequence);
4. StyleableToast
StyleableToast是一个Android库, 可通过多种样式选项将标准Toast提升到一个新的水平。通过代码或在styles.xml中使用样式来设置你的敬酒样式。
3. TastyToast
TastyToast是一个有用的库, 可实现自定义Android Toast, 这些Toast看起来很漂亮, 但没有原生的Toast令人讨厌。安装库之后, 你可以像下面这样使用Toast:
import com.sdsmdg.tastytoast.TastyToast;
// 1. Success message
TastyToast.makeText(
getApplicationContext(), "Success message !", TastyToast.LENGTH_LONG, TastyToast.SUCCESS
);
// 2. Warning message
TastyToast.makeText(
getApplicationContext(), "Warning message !", TastyToast.LENGTH_LONG, TastyToast.WARNING
);
// 3. Error message
TastyToast.makeText(
getApplicationContext(), "Error message !", TastyToast.LENGTH_LONG, TastyToast.ERROR
);
// 4. Info message
TastyToast.makeText(
getApplicationContext(), "Info message !", TastyToast.LENGTH_LONG, TastyToast.INFO
);
// 5. Default message
TastyToast.makeText(
getApplicationContext(), "Default message !", TastyToast.LENGTH_LONG, TastyToast.DEFAULT
);
// 6. Confusion message
TastyToast.makeText(
getApplicationContext(), "Confusion message !", TastyToast.LENGTH_LONG, TastyToast.CONFUSING
);
2. SuperToasts
SuperToasts库增强并建立在Android Toast类的基础上。该库包括对上下文敏感的SuperActivityToasts(可显示进度和处理按钮单击)的支持, 以及对上下文无关的SuperToasts(对标准Android Toast类提供许多自定义选项的支持)。你可以这样创建一个 SuperToasts:
SuperActivityToast.create(getActivity(), new Style(), Style.TYPE_BUTTON)
.setButtonText("UNDO")
.setButtonIconResource(R.drawable.ic_undo)
.setOnButtonClickListener("good_tag_name", null, onButtonClickListener)
.setProgressBarColor(Color.WHITE)
.setText("Email deleted")
.setDuration(Style.DURATION_LONG)
.setFrame(Style.FRAME_LOLLIPOP)
.setColor(PaletteUtils.getSolidColor(PaletteUtils.MATERIAL_PURPLE))
.setAnimations(Style.ANIMATIONS_POP).show();
1. Toasty
Toasty是一个简单的Android库, 可让你使用普通的Toast, 但使用类固醇。你可以将其添加到模块的build.gradle文件中(确保版本与JitPack匹配), 仅此而已。每个方法总是返回一个Toast对象, 因此你可以自定义Toast得多。要显示错误的Toast:
Toasty.error(yourContext, "This is an error toast.", Toast.LENGTH_SHORT, true).show();
要显示成功的Toast:
Toasty.success(yourContext, "Success!", Toast.LENGTH_SHORT, true).show();
要显示信息Toast:
Toasty.info(yourContext, "Here is some info for you.", Toast.LENGTH_SHORT, true).show();
要显示警告Toast:
Toasty.warning(yourContext, "Beware of the dog.", Toast.LENGTH_SHORT, true).show();
要显示通常的Toast:
Toasty.normal(yourContext, "Normal toast w/o icon").show();
要显示带有图标的常用Toast:
Toasty.normal(yourContext, "Normal toast w/ icon", yourIconDrawable).show();
你还可以使用custom()方法创建自定义的Toasts:
Toasty.custom(yourContext, "I'm a custom Toast", yourIconDrawable, tintColor, duration, withIcon, shouldTint).show();
如果你知道另一个很棒的开源库, 该库可让你在android本机应用程序中实现类似Toast的通知, 请在注释框中与社区共享。