吐司背景颜色被改变

我正在进行一个项目,并通过执行以下操作将应用程序的背景设置为白色:

<!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> <item name="android:actionBarStyle">@style/MyActionBar</item> <item name="android:actionBarSize">140dp</item> <item name="android:background">#ffffff</item> </style> 

这是一个魅力,但问题是,吐司消息现在正在显示一个白色的背景。 奇怪的是我整合了一个启animation面到项目中,当用户loginToast消息时显示正常。

这真的很奇怪,并希望在这个问题上的任何帮助。

编辑:添加屏幕显示问题。 正如最初的烤面包(带有不需要的效果)正在消失,新的面包(默认)淡入,

在这里输入图像说明

Solutions Collecting From Web of "吐司背景颜色被改变"

我解决了这个问题。 Toast背景颜色发生变化的原因是由于我在View对象的上下文中传递的。

下面这行代码会导致背景色变成不需要的白色:

 Toast.makeText(v.getContext(), "Checking login details...", Toast.LENGTH_SHORT).show(); 

这一行代码会将Toast返回到默认的系统风格:

 Toast.makeText(getApplicationContext(), "Checking login details...", Toast.LENGTH_SHORT).show(); 

我不确定是否有这样一个固定的问题,因为我只是在学习。 如果有人可以看到问题,请分享。 它似乎工作得很好,但。

您可以使用视图轻松定制和时髦的吐司消息。 也许改变你的布局toast_layout。

检查这个post吐司背景更改为匹配活动的主题 ,它会帮助你

对于我来说,使用getApplicationContext()不是一个选项,对于其他有这个问题的人,你可以将Toast设置回默认设置,如下所示:

 //Create your Toast with whatever params you need Toast toast = Toast.makeText(getActivity(), "Refreshing...", Toast.LENGTH_SHORT); //Set the background for the toast using android's default toast_frame. //Optionally you can set the background color to #646464 which is the //color of the frame View view = toast.getView(); view.setBackgroundResource(android.R.drawable.toast_frame); //Get the TextView for the toast message so you can customize TextView toastMessage = (TextView) view.findViewById(android.R.id.message); //Set background color for the text. toastMessage.setBackgroundColor((Color.parseColor("#646464"))); toast.show(); 

WInthrop的答案除外。 不是将文本框的背景颜色设置为#646464,而是将其设置为透明,使得吐司看起来像原来的半透明吐司

 private void showToast(Context context,String msg,int duration){ Toast toast = Toast.makeText(context,msg,duration); View view = toast.getView(); view.setBackgroundResource(android.R.drawable.toast_frame); TextView toastMessage = (TextView) view.findViewById(android.R.id.message); toastMessage.setBackgroundColor(Color.TRANSPARENT); toast.show(); }