Brovin Yaroslav

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

В теме 33 сообщения

Описание:

  • Назначение: Быстрые уведомления, появляющиеся в нижней части экрана, предназначенные для отображения короткой текстовой информации и опционно изображения
  • Поддерживаемые платформы: 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;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Ярослав, когда будет под ИОС ?

Очень ждем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обновил описание и выложил новую версию 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 апострофа, а именно пробел).

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

А у вас 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обнаружена проблема, приводящая к падению приложения на 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 сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, Kitty сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
17 минут назад, ZuBy сказал:

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, Pax Beach сказал:

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 часов назад, Kitty сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, ZuBy сказал:

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


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

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