Перейти к содержанию
Fire Monkey от А до Я

Описание TfgToast - Быстрые уведомления


Brovin Yaroslav

Рекомендуемые сообщения

  • Администраторы

Описание:

  • Назначение: Быстрые уведомления, появляющиеся в нижней части экрана, предназначенные для отображения короткой текстовой информации и опционно изображения
  • Поддерживаемые платформы: Android, iOS
  • Демо проект: Samples\ToastsDemo\ToastsDemo.dproj
  • Доступен с версии: RX (R100)

Возможности:

  • Несколько быстрых способов отображения уведомления:
    • TfgToast.Show(Message) - только текст
    • TfgToast.Show(Message, Icon) - текст и картинка
    • TfgToast.Show(Message, Duration)  текст + настройка длительности отображения
    • TfgToast.Show(Message, Duration, Icon) - текст + картинка + длительность отображения
  • Доступно редактирование цвета заднего фона (TfgToast.BackgroundColor)
  • Доступно редактирование цвета сообщения (TfgToast.MessageColor).
  • Возможность добавить к сообщению иконку (TfgToast.Icon)
  • Доступно редактирование длительности отображения уведомления (TfgToast.Duration)
  • Возможность менять глобальные параметры отображения всех тостов в рамках приложения (TfgToast.DefaultBackgroundColorTfgToast.DefaultMessageColor и TfgToast.DefaultPadding)

Примеры вызова:

// Быстрое отображение, только текст
TfgToast.Show('Message');

// Быстрое отображение, текст + картинка
TfgToast.Show('Message', Bitmap);

// Настраиваемое отображение
var
  Toast: TfgToast;
begin
  Toast := TfgToast.Create(EditToastMessage.Text, TfgToastDuration(ComboBoxDurationType.ItemIndex));
  try
    if SwitchShowIcon.IsChecked then
      Toast.Icon.Assign(Image1.Bitmap);
    Toast.MessageColor := ColorComboBoxMessage.Color;
    Toast.BackgroundColor := ColorComboBoxBackground.Color;
    Toast.Show;
  finally
    Toast.Free;
  end;
end;

Скриншоты:

post-1-0-95417100-1445615521_thumb.pngpost-1-0-25397100-1445615522_thumb.png

post-1-0-12281900-1448978957_thumb.pngpost-1-0-82584100-1448978957_thumb.pngpost-1-0-46940800-1448978958_thumb.png

Ссылка на комментарий
  • Доступно редактирование цвета заднего фона (TfgToast.BackgroundColor)
  • Доступно редактирование цвета сообщения (TfgToast.MessageColor).

не работает это, оба цвета не работают, цвета такие же как скрине и не меняются

 

  public
    Toast: TfgToast;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Toast := TfgToast.Create;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Toast.BackgroundColor := TAlphaColorRec.Blue;
  Toast.MessageColor := TAlphaColorRec.Red;
  Toast.Show('Привет!');
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Toast.Free;
end;
Ссылка на комментарий
  • 1 месяц спустя...

Обновил описание и выложил новую версию 0.7.1.74 пакета с ios реализацией.

Начал ставить и при нажати Build ошибка

 

[dcc32 Fatal Error] fgx.dpk(87): F2613 Unit 'FGX.TabControl.pas' not found.

Ссылка на комментарий

Извиняюсь, скачайте пакет заново. Я выложил исправленный вариант.

Тоаст на ИОС работает, спасибо!!! Давно ждал!

 

Проверил на ИОС и Андроид.

Явное указание фона и цвета текста(мой код выше) не меняет цвета. Все также белый на сером...

Через глобальные работает норм, все меняется.

Ссылка на комментарий
  • Администраторы

Честно говоря особо не было времени уделить андроид версии. Посмотрю и исправлю все проблемы. Вроде цвет текста я исправлял.

Ссылка на комментарий

Проверил на ios, цвет текста и фона меняется

может опять промежуточные моменты? помните картинка и т.п.

можете проверить мой код выше?

Ссылка на комментарий
  • Администраторы

Ааа, понял, что не так. Создавать TfgToast нужно при помощи специального метода Create с параметрами. 

Toast := TfgToast.Create('Text', TfgToastDuration.Short);

Дефолтный конструктор нельзя использовать. 

Ссылка на комментарий

Ааа, понял, что не так. Создавать TfgToast нужно при помощи специального метода Create с параметрами. 

Toast := TfgToast.Create('Text', TfgToastDuration.Short);

Дефолтный конструктор нельзя использовать. 

изменил у себя вызов конструктора  на Toast := TfgToast.Create(' ',TfgToastDuration.Short); 

ничего не изменилось. (там не 2 апострофа, а именно пробел).

наверно дело не в конструкторе...

Ссылка на комментарий
  • 1 месяц спустя...
  • 1 месяц спустя...
  • Администраторы

Так, у вас цвет сбрасывается, так как вы вызываете классовый метод  Show, а нужно использовать show без параметров:

  Toast.BackgroundColor := TAlphaColorRec.Blue;
  Toast.MessageColor := TAlphaColorRec.Red;
  Toast.Message := 'Привет';
  Toast.Show;

А у вас 

Toast.Show('Привет!');

Это классовый метод для быстрого показа тоста только с текстом.

Ссылка на комментарий
  • 6 месяцев спустя...

Обнаружена проблема, приводящая к падению приложения на iOS (речь о последней версии FGX). Шаги для воспроизведения следующие:

  1. Запустить демо-проект на симуляторе или реальном устройстве.
  2. Многократно быстро нажать на указанную кнопку (обычно хватает 5-8 раз).
    Simulator Screen Shot 29 авг. 2016 г., 17.28.48.png
  3. Приложение аварийно завершается.

Источник исключения - модуль FGX.Toasts.iOS, конкретно этот метод:

procedure TiOSToastsQueue.ShouldHide;
begin
  TfgAssert.IsNotNil(FActiveToast); // <--

  DequeueToast(FActiveToast);
end;

 

Ссылка на комментарий
  • Администраторы

Добрый день,

Пока в отпуске, как вернусь исправлю. Попробуйте локально просто закомментировать эту строчку.

Ссылка на комментарий
6 минут назад, Brovin Yaroslav сказал:

Попробуйте локально просто закомментировать эту строчку.

Не помогает, внешне проблема та же - приложение падает, хотя теперь исключение в другом методе.

Ссылка на комментарий
  • 2 недели спустя...

Здравствуйте. Можно ли в следующей версии добавить чтобы Message был в две строки? Можно ли также добавить, что при тапе на Message происходило событие клика в котором, например, переход на нужный URL?

Ссылка на комментарий
  • Модераторы
2 часа назад, Kitty сказал:

Можно ли также добавить, что при тапе на Message происходило событие клика в котором, например, переход на нужный URL?

тосты не должны иметь такой функционал

Ссылка на комментарий
17 минут назад, ZuBy сказал:

тосты не должны иметь такой функционал

Вот в стандартном тосте такого функционала нет, а в компоненте можно и предусмотреть.

Правда пользоваться этим не очень удобно — нужно успеть тапнуть по сообщению.

 

Ссылка на комментарий
  • Модераторы
Только что, Pax Beach сказал:

Вот в стандартном тосте такого функционала нет, а в компоненте можно и предусмотреть.

Правда пользоваться этим не очень удобно — нужно успеть тапнуть по сообщению.

вы наверное забываете или не знаете как работает тосты.

Тост - это быстрое сообщение, которое не привязано к приложению! Это очень важно понять!

оно не может содержать инструкции по действиям, потому что приложение может уже завершиться, а тост может еще какое-то время показываться (!)

Ссылка на комментарий
  • Администраторы
5 часов назад, Kitty сказал:

Можно ли в следующей версии добавить чтобы Message был в две строки?

Можно, посмотрю, что можно сделать. Перенос тогда будет по sLineBreak.

Ссылка на комментарий
2 часа назад, ZuBy сказал:

вы наверное забываете или не знаете как работает тосты.

Тост - это быстрое сообщение, которое не привязано к приложению! Это очень важно понять!

оно не может содержать инструкции по действиям, потому что приложение может уже завершиться, а тост может еще какое-то время показываться (!)

... и как это мешает отправить в систему намерение (Intent)?

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...