RUDE

Xamarin Toast.MakeText изменить цвет

как я могу изменить цвет фона Toast в приложении Xamarin Forms?

Я пробовал этот код на Android 11:

        Context context = Android.App.Application.Context;
        string message = "Hello toast!";
        ToastLength duration = ToastLength.Short;

        Toast t = Toast.MakeText(context, message, duration);
        System.Drawing.Color c = Xamarin.Forms.Color.Green;
        ColorMatrixColorFilter CM = new ColorMatrixColorFilter(new float[]
            {
                0,0,0,0,c.R,
                0,0,0,0,c.G,
                0,0,0,0,c.B,
                0,0,0,1,0            
            });
        t.View.Background.SetColorFilter(CM);
        t.Show();

Но я получаю следующую ошибку: System.NullReferenceException: «Ссылка на объект не указывает на экземпляр объекта».


18
1

Ответ:

Решено

Пользовательские всплывающие окна устарели, начиная с Android 11. Таким образом, значение t.View в вашем коде равно нулю.

Как говорится в официальном документе:

Custom toast views are deprecated. Apps can create a standard text toast with the makeText(android.content.Context, java.lang.CharSequence, int)

Вы можете проверить следующий случай: Toast.getView() возвращает null на Android 11 (API 30)