Toast.getView () возвращает null на Android 11 (API 30) - PullRequest
4 голосов
/ 14 июля 2020

Я только что установил изображение Android R (API 30) в свой эмулятор, чтобы попробовать свое приложение, и оно вылетело при попытке установить цвет фона тоста.

    Toast toast = Toast.makeText(ctxt, msg, duration);
    View view = toast.getView();
    view.setBackgroundColor(0xFF303030);
    TextView tview = view.findViewById(android.R.id.message);
    tview.setTextColor(Color.WHITE);
    toast.show();

Это действительно странно, как в Android Q (API 29) работает отлично.

Мой build.gradle обновлен для Android R (API 30)

    compileSdkVersion 30
    buildToolsVersion "30.0.1"

Есть ли новый способ сделать это ??

1 Ответ

5 голосов
/ 14 июля 2020

Начиная с Android 11, пользовательские тосты / модификации тостов устарели, согласно Google, чтобы «защитить пользователей». Поэтому ваше приложение в Android 30 не может отображать настраиваемые всплывающие сообщения.

Из Android Документация для разработчиков:

Пользовательские представления всплывающих окон устарели. Приложения могут создавать стандартный текстовый тост с помощью makeText (android .content.Context, java .lang.CharSequence, int)

...