不推荐使用toast.getView和toast.setView

问题描述

我想向用户展示自定义吐司。但是toast.getView()和toast.setView()在android studio中已被弃用。

这是我的代码

Toast toast = Toast.makeText(context,"Show Toast",Toast.LENGTH_LONG);
View view = toast.getView();
view.setBackgroundResource(R.drawable.toast_background);
TextView text = view.findViewById(android.R.id.message);
text.setTextColor(Color.WHITE);
text.setPadding(15,15,0);
toast.show();



现在,如何在android studio(java)中自定义吐司了?

解决方法

新建类

    public class WhiteCustomToast {
    public static void Make(Context context,String message) {
        Toast toast = Toast.makeText(context,message,Toast.LENGTH_SHORT);
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
            View view = toast.getView();
            view.setBackgroundResource(R.drawable.white_cutom_bg);
            TextView text = (TextView) view.findViewById(R.id.message);
            //text.setTextColor(context.getResources().getColor(R.color.white));
            text.setTextColor(Color.parseColor("#FFFFFFFF"));
            text.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
            text.setTypeface(Utilities.Ubuntu_Regular);
            text.setTextSize(14f);
        }
        toast.show();
    }
}
        
        

在主类或任何地方使用

WhiteCustomToast.Make(context,"Checking");

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...