文档说,Toasts在应用程序 * 目标 * Android 12或更高版本上被截断为两行。我观察到的行为是,Toasts在运行Android 12或更高版本的设备上 * 安装 * 的应用程序上被截断为两行。
具体来说,我的手机更新到Android 12之前安装的一个应用程序不会被截断,但如果我在运行Android 12的模拟器上安装它,它会被截断。另一个我在手机更新到Android 12之后重建并安装的应用程序会被截断。
更新:
实际情况似乎更为复杂:行为也取决于设备,显然也取决于它是调试版本还是发布版本。同一个应用程序的toast被截断,在我的手机上正确显示了发布版本,但在模拟器上截断了 * 相同 * 的发布版本。
请注意,这与70307699的问题不同,OP将他的targetSdk
更新为31。我的两个应用程序都将targetSdk
设置为小于31。
我如何才能获得记录的行为并取回我的祝酒词?
2条答案
按热度按时间lf5gs5x21#
Android平台团队并没有彻底弃用toasts,而是逐渐降低它们的有用性,这是弃用的一种形式。
https://developer.android.com/reference/android/widget/Toast
最后一句说:
Starting with Android 12 (API level 31), apps targeting Android 12 or newer will have their toasts limited to two lines.
如果我需要多行消息,我个人会使用Snackbars。
hgtggwj02#
也许这可以是一个变通的办法。尝试创建一个自定义的吐司消息。我尝试用
PopupWindow
创建一个。这个类的setContentView
方法可以用来设置自定义布局,从而可以支持多行文本。Android上的自定义吐司:简单的例子
如果你想通过在应用程序的Application类中创建一个方法来使它成为一个通用的方法。下面是代码。