Xamarin.Android
Тосты
Поиск…
Основные сообщения для тостов
Сначала MakeText()
объект Toast с помощью одного из методов MakeText()
. Этот метод принимает три параметра: приложение Context
, текстовое сообщение и продолжительность для тоста. Он возвращает правильно инициализированный объект Toast. Вы можете отобразить уведомление тоста с помощью Show()
, как показано в следующем примере:
Context context = Application.Context;
string text = "Hello toast!";
ToastLength duration = ToastLength.Short;
var toast = Toast.MakeText(context, text, duration);
toast.Show();
Этот пример демонстрирует все, что вам нужно для большинства уведомлений о тостах. Вам редко нужно что-то еще. Однако вы можете захотеть поместить тост по-другому или даже использовать свой собственный макет вместо простого текстового сообщения. В следующих разделах описывается, как вы можете это делать.
Вы также можете объединить свои методы, вызвать как однострочный и избежать удержания объекта Toast, например:
Toast.MakeText(Application.Context, "Hello toast!", ToastLength.Short).Show();
Для получения дополнительной информации обратитесь к более полной документации для Android по этой теме.
Цветные сообщения с тостами
Иногда мы хотим предоставить дополнительную информацию нашему пользователю с цветами (например, красный означает, что что-то случилось неправильно). Мы можем изменить цвет фона тоста, установив цветной фильтр на представление, которое нам дает наш тост (здесь я использую ColorMatrixColorFilter ):
Toast t = Toast.MakeText(context, message, duration);
Color c = */your color/*;
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();
А также можно изменить цвет текста, если фон светлый или темный:
if ((((float)(c.R) + (float)(c.G) + (float)(c.B)) / 3) >= 128)
t.View.FindViewById<TextView>(Android.Resource.Id.Message).SetTextColor(Color.Black);
else
//text color is white by default
Изменить положение тоста
Мы можем изменить наш тост, используя метод SetGravity. Этот метод принимает три параметра: во-первых, гравитация тоста на экране, а две другие устанавливают тост, смещенный от исходного положения (которое задается первым параметром):
//Toast at bottom left corner of screen
Toast t = Toast.MakeText(context, message, duration);
t.SetGravity(GravityFlags.Bottom | GravityFlags.Left, 0, 0);
t.Show();
//Toast at a custom position on screen
Toast t = Toast.MakeText(context, message, duration);
t.SetGravity(GravityFlags.Top | GravityFlags.Left, x, y);
t.Show();