Ric*_*ins 5 java android android-toast android-12
该文档称,在针对Android 12 或更高版本的应用程序上,Toast 被截断为两行。我观察到的行为是,在运行 Android 12 或更高版本的设备上安装的应用程序上,Toast 被截断为两行。
具体来说,我的手机更新到 Android 12之前安装的一个应用程序的toast 不会被截断,但如果我将其安装在运行 Android 12 的模拟器上,它的 toast 就会被截断。我的手机更新到 Android 12后重建并安装的另一个应用程序的toast 被截断。
更新:
情况实际上似乎更复杂:行为还取决于设备,并且显然还取决于它是调试版本还是发布版本。被截断其 toast 的同一个应用程序可以在我的手机上使用发布版本正确显示它们,但在模拟器上使用相同的版本版本截断它们。
请注意,这与70307699不同,OP 将其更新targetSdk为 31。我的两个应用程序都targetSdk设置为小于 31。
我怎样才能获得记录的行为并恢复我的祝酒词?
Android 平台团队并没有完全弃用 Toast,而是逐渐降低它们的用处,这是弃用的一种形式。
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。
val SNACKBAR_MAX_LINES = 8 // Increase maximum SnackBar line limit above 2
val snackbar = Snackbar.make(bottomNavigationView, "message", Snackbar.LENGTH_SHORT)
(snackbar.view.findViewById(com.google.android.material.R.id.snackbar_text) as TextView)
.run {
maxLines = SNACKBAR_MAX_LINES
}
snackbar.show()
Run Code Online (Sandbox Code Playgroud)