如何在 Android API 30+ 中在屏幕顶部创建 Toast
How to Create a Toast at top of Screen In Android API 30+
我是 Android 开发的新手,正在尝试创建一个简单的通知,告诉用户某些用户操作何时完成。
我希望通知出现在屏幕顶部并在不久后自行消失。基本上我要干杯。
但是在 Android 30+ 中,Toast.makeText() 方法不允许设置 toast 位置的选项,当我创建自定义 toast 时,我收到警告设置该视图已弃用。
使用了 snackbar,但我也找不到一种优雅的方式来将 snackbar 设置为出现在屏幕顶部。
实现我的目标的最佳方法是什么?
这是尝试将 toast 显示在屏幕顶部的已弃用代码
val inflater = layoutInflater
val layout: View = inflater.inflate(
R.layout.custom_toast, null
)
val text: TextView = layout.findViewById(R.id.text)
text.text = "Hello! This is a custom toast!"
val toast = Toast(applicationContext)
toast.setGravity(Gravity.TOP, 0, 0)
toast.duration = Toast.LENGTH_LONG
toast.view = layout
toast.show()
如果您使用的是 Material Components library,则在其 Snackbar
实现中有一个 setAnchorView
方法,基本上可以让您指定小吃栏应位于上方的视图。因此,如果您的布局中有合适的布局(或者您可以添加一个,例如在适当的位置添加 Guideline
),您可以使用它。
更多信息在这里:
我认为 Toast
s 不再是一个选项,这似乎是现在的系统功能,您无法控制它如何呈现它们 - 您给它文本,这就是它。没有重力,没有自定义视图等,没有你自己的旋转!
无法在android11中设置吐司重力,因为此方法在API30+中已弃用,单击here可查找更多信息。
我是 Android 开发的新手,正在尝试创建一个简单的通知,告诉用户某些用户操作何时完成。
我希望通知出现在屏幕顶部并在不久后自行消失。基本上我要干杯。
但是在 Android 30+ 中,Toast.makeText() 方法不允许设置 toast 位置的选项,当我创建自定义 toast 时,我收到警告设置该视图已弃用。
实现我的目标的最佳方法是什么?
这是尝试将 toast 显示在屏幕顶部的已弃用代码
val inflater = layoutInflater
val layout: View = inflater.inflate(
R.layout.custom_toast, null
)
val text: TextView = layout.findViewById(R.id.text)
text.text = "Hello! This is a custom toast!"
val toast = Toast(applicationContext)
toast.setGravity(Gravity.TOP, 0, 0)
toast.duration = Toast.LENGTH_LONG
toast.view = layout
toast.show()
如果您使用的是 Material Components library,则在其 Snackbar
实现中有一个 setAnchorView
方法,基本上可以让您指定小吃栏应位于上方的视图。因此,如果您的布局中有合适的布局(或者您可以添加一个,例如在适当的位置添加 Guideline
),您可以使用它。
更多信息在这里:
我认为 Toast
s 不再是一个选项,这似乎是现在的系统功能,您无法控制它如何呈现它们 - 您给它文本,这就是它。没有重力,没有自定义视图等,没有你自己的旋转!
无法在android11中设置吐司重力,因为此方法在API30+中已弃用,单击here可查找更多信息。