Как установить тему для пользовательского макета тоста? - PullRequest
0 голосов
/ 03 октября 2018

Мне нужно установить прозрачную тему для моего пользовательского макета тоста.Но с кодом ниже этого не происходит.Может быть, я делаю это с неправильным контекстом?!

   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();

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 03 октября 2018

Почему вы используете 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.

...