Toast.setGravity()在我的AVD Nexus 6 API 30中不起作用



我设置了吐司的重力,使其显示在屏幕顶部,代码如下:

Toast toast = Toast.makeText(getActivity(), "邮箱地址不能为空!", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP, 0, 0);
toast.show();

它在我的AVD Nexus 6 API 30中不起作用,带有LogCat消息:

E/Toast: setGravity() shouldn't be called on text toasts, the values won't be used

然而,当我在安卓9的手机诺基亚X6上安装apk时,它似乎很好。请帮帮我!!

正如在关于ToastsetGravity方法的Android文档中所说,该方法不再适用于运行API30或更高版本的设备。我想您的项目的targetSdk设置为30。

警告:从Android Build.VERSION_CODES#R开始,对于目标为API级别Build.VERSION _CODES#R或更高版本的应用程序,当在文本吐司中调用此方法时,此方法是no-op。

来源:https://developer.android.com/reference/android/widget/Toast#setGravity(int,%20int,%20int(

无法再自定义文本吐司。您需要创建一个简单的Toast来进行自定义。您还需要将邮件文本添加到单独的"查看"文件中。

Toast toast = new Toast(getContext());
View toast_view = LayoutInflater.from(getContext()).inflate(R.layout.toast_text, null);
toast.setView(toast_view);
toast.setDuration(Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();

最新更新