首页 > 解决方案 > 如何为自定义吐司布局设置主题?

问题描述

我需要为我的自定义吐司布局设置透明主题。但是使用下面的代码不会发生这种情况。也许我是在错误的背景下做的?!

   LayoutInflater inflater = getLayoutInflater();
    LinearLayout linearLayout =  findViewById(R.id.toast_layout);

   Context context = getApplicationContext();
    context.setTheme(R.style.AppTheme_Transparent);
    View layout = inflater.cloneInContext(context).inflate(R.layout.info_layout,
            linearLayout);

    Toast toast = new Toast(context);
    toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
    toast.setDuration(Toast.LENGTH_SHORT);
    toast.setView(layout);
    toast.show();

我怎么解决这个问题?

标签: androidandroid-layoutandroid-themeandroid-toast

解决方案


为什么要使用 cloneInContext?您可以简单地执行以下操作。它适用于我的代码

Toast toast = new Toast(context);
toast.setDuration(Toast.LENGTH_LONG);
LayoutInflater inflater = (LayoutInflater) 
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View view = inflater.inflate(R.layout.custom_layout, null);
toast.setView(view);
toast.show();

您可以创建自定义布局并将其中的主题设置为 AppTheme_Transparent。


推荐阅读