【问题标题】:Why do toasts get truncated when app is installed on Android 12 APi 31为什么在 Android 12 APi 31 上安装应用程序时 Toast 会被截断
【发布时间】:2022-07-27 14:08:43
【问题描述】:

文档说 Toast 在应用程序目标 Android 12 或更高版本上被截断为两行。我观察到的行为是,在运行 Android 12 或更高版本的设备上安装的应用程序上,Toast 被截断为两行。

具体来说,我的手机更新到 Android 12之前安装的其中一个应用程序不会截断它的 toast,但是如果我将它安装在运行 Android 12 的模拟器上它会截断它的 toast . 我的手机更新到 Android 12 之后,我重建并安装的另一个应用程序的 toasts 被截断。

[添加] 情况实际上似乎更复杂:行为还取决于设备,显然还取决于它是调试版本还是发布版本。被截断的同一个应用程序在我的手机上使用发布版本正确显示它们,但在模拟器上使用 same 版本版本截断它们。

请注意,这与70307699 的问题不同,其中 OP 将他的targetSdk 更新为 31。我的两个应用程序都将targetSdk 设置为小于 31。

如何获取记录的行为并恢复我的祝酒词?

【问题讨论】:

    标签: android-toast android-12


    【解决方案1】:

    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()
    

    【讨论】:

      猜你喜欢
      • 2021-12-23
      • 2022-07-27
      • 2021-12-22
      • 2022-01-17
      • 2021-12-13
      • 1970-01-01
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多