Jump to content

Yaroslav Brovin

Administrators
  • Content Count

    717
  • Joined

  • Last visited

  • Days Won

    162

Yaroslav Brovin last won the day on October 22

Yaroslav Brovin had the most liked content!

Community Reputation

786 Excellent

4 Followers

About Yaroslav Brovin

  • Birthday September 10

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. В процессе реализации уже существующих компонентов библиотеки FGX Native для iOS мы иногда сталкиваемся с тем, что для полноценной кроссплатформенной разработки приложений текущего функционала компонентов уже не хватает. Например, в панели TfgNavigationBar (iOS) для кнопки навигации часто иконку дополняют текстом, в то время, как в андроиде текст никто не добавляет. Однако, речь в этой новости пойдет не об этом компоненте, а об обычной кнопке TfgButton. С виду кнопка - один из самых простых компонентов. Однако, на практике, это довольно сложный компонент, если брать во внимание большое разнообразие в мире кнопок разных стилей и видов. Было много причин, почему кнопка TfgButton в библиотеке довольно ограничена в своих возможностях. Главная из них - это как сделать действительно удобный набор настроек, который угодил бы большинству и при этом был бы прост и гибок в настройке. Рад поделиться, что в процессе реализации iOS и изучения Material Design, мы пришли к удобному на наш взгляд набору настроек кнопки. Стили Теперь кнопка может иметь один из трёх базовых стилей: Text - обычная текстовая кнопка, без рамки, с возможностью привязать иконку. Этот тип предназначен для третьестепенных действий. Outlined - это плоская Text кнопка с окантовкой. Этот же тип используется для второстепенных действий. Contained - это Outlined кнопка + заливка области. Естественно, каждый вид кнопки должен иметь свой индивидуальный набор настроек. И желательно, чтобы инспектор объектов отображал только актуальные для данного стиля настройки. Так, например, если используется Text кнопка, то для нее должны быть доступны настройки рамки и заполнения. Поэтому теперь каждый стиль кнопки динамически подгружает свой набор настроек. Выбор стиля выполняется в инспекторе объектов в новом свойстве Appearance: При изменении стиля будут доступны разные наборы настроек внешнего вида: Как вы могли уже заметить, список настроек, отвечающих за внешний вид, довольно сильно расширился, что позволяет легко делать такие разные по виду кнопки: круглые, плоские, разноцветные, контрастные и тд Настройки элементов Стоит отметить, что теперь можно отдельно управлять отображением каждого элемента кнопки: Текст Иконка Рамка Наполнение Таким образом, теперь для иконки можно отдельно указать оттенок прямо на уровне компонента. Это особенно удобно в случаях, когда вы используете одну и ту же иконку в разных местах с разными оттенками. Если ранее для решения подобной задачи было необходимо делать копии одной и той же иконки и менять ей оттенок в дизайнере ресурсов, то сейчас достаточно установить свойство Appearance.Icon.TintColorName равным "Theme\Text\Icon" (к примеру). Так же теперь можно указать желаемый размер области вывода иконки. В автоматическом режиме, иконка старается стать как можно больше, занимая все доступное пространство кнопки. При указании фиксированного размера, иконка не сможет превысить указанное значение: При этом, кнопка с Contained стилем умеет автоматически подбирать цвета текста и иконки на основании цвета фона (если вы не указали свои цветовые предпочтения явно😞 Помимо этого, если вы хотите отобразить цветную иконку, вы можете отключить автоматическую перекраску через свойство Appearance.Icon.RenderMode. Для рамки кнопки мы предусмотрели возможность изменить значение радиуса скругления и толщину рамки. Изменения API Переименованы свойства ImageName -> IconName, ImageLocation -> Appearnace.Icon.Location, так как на наш взгляд иконка - это небольшой графический элемент, который преимущественно отображается на кнопке. При этом мы оставили обратную совместимость, так что при запуске старого проекта, старое значение из свойства ImageName и ImageLocation будет автоматически прочитано. Свойства TextSettings и TextShadow теперь находятся в группе настроек Appearance.Text. Они так же будут успешно восстановлены для старых проектов. Старые типы кнопок TfgButonKind.Raised и Flat теперь не будут поддерживаться и при открытии проекта автоматически будут сконвертированы в Contained и Text стили. P.S. Всем хороших выходных и успешного кодирования 🙂
  2. Кнопка по сути пока просто кладется рядом. Но отступ нужен, так как до этого момента, кнопка перекрывает содержимое поле ввода. Сейчас же ее можно разместить поверх через TfgLayout и разместить ее прямо поверх поля ввода так, чтобы текст не был перекрыт.
  3. Надо сразу писать про проблему... А не костылить. Критические ошибки мы стараемся оперативно править.
  4. Ок, понял. Посмотрю. Спасибо.
  5. Добрый вечер, можете указать тайминг к видео, на какой секунде видно, описываемое поведение?
  6. Download : setup_1.5.0.1_release.eng.zip Release d ate: 24 September 2020 Changelog: * TfgCollectionView: - When NotifyItemsRemoved is invoked, future items selection occurs with a shift. Fixed. https://forum.fgx-native.com/topic/549-tfgcollectionview-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%B0-%D0%BF%D1%80%D0%B8%D0%B2%D0%BE%D0%B4%D0%B8%D1%82-%D0%BA-%D1%81%D0%B4%D0%B2%D0%B8%D0%B3%D1%83-%D0%B2%D1%8B%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F/ * TfgEdit: - Regression. The BackgroundName doesn't work for TfgEdit. Fixed. * TfgForm/TfgControl: - TfgForm wrong defined reference on TfgControl.Form. Now if form-frame is embedded into other, it contains reference on root form and all nested controls refer to the form-frame. If the form is not embedded, than TfgForm.Form = nil.
  7. We have discussed this issue in direct chat with Omar. The problem is in his Samsung device. Each Android device provides configuration information about camera work. FGX Native provide special API for it FGX.Camera: IFGXCamera = interface ['{14C827DC-3D2C-4C40-8CFA-665CF1B7F937}'] function GetId: string; {$REGION 'Characteristics'} function GetType: TfgCameraType; function GetAvailableFrameSizes(const AFrameType: TfgFrameType): TArray<TSize>; overload; function GetAvailableFrameSizes(const AImageFormat: TfgImageFormat): TArray<TSize>; overload; function GetOutputSupportedFormats: TfgImageFormats; function GetCameraRotationAngle: TfgRotation; {$ENDREGION} Based on available configuration and user settings TfgCamera prepares session for capturing photo. Omar's device returns the followed JPEG format sizes: supportedSize=2048x1536 supportedSize=2048x1152 supportedSize=1920x1920 supportedSize=1920x1080 supportedSize=1440x1080 supportedSize=1280x720 supportedSize=1088x1088 supportedSize=1056x704 supportedSize=960x720 supportedSize=800x480 supportedSize=736x736 supportedSize=720x480 supportedSize=640x480 supportedSize=352x288 supportedSize=320x240 supportedSize=176x144 However, his device doesn't really support square aspect ratio. So bug in Samsung leads to offset result photo: We are not able to fix this bug in FGX Native library, because it's a low level camera implementation bug on operation system level. However, changing required photo size on other aspect ratio works fine. It's possible to specify required frame size via property TfgCamera.MaxFrameSize.
  8. Скачать: setup_1.5.0.1_release.rus.zip Дата релиза: 24 сентября 2020 Список изменений: * TfgCollectionView: - При использовании метода NotifyItemsRemoved выделение последующих элементов происходит со сдвигом. Исправлено. https://forum.fgx-native.com/topic/549-tfgcollectionview-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%B0-%D0%BF%D1%80%D0%B8%D0%B2%D0%BE%D0%B4%D0%B8%D1%82-%D0%BA-%D1%81%D0%B4%D0%B2%D0%B8%D0%B3%D1%83-%D0%B2%D1%8B%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F * TfgEdit: - Регрессия: Задание фона через свойство BackgroundName не работало. Исправлено. * TfgForm/TfgControl: - Исправлено неверное определение ссылки на форму в TfgControl.Form. Теперь если форма встроена в другую, то она будет содержать ссылку на родительскую форму, а все вложенные в нее контролы будут ссылаться на нее. Если форма не встраивается, то она будет содержать nil ссылку.
  9. Вызывать ReloadItems не надо. Подтверждаю. Ошибку воспроизвел. Локально поправил. Исправление войдет в следующую версию.
  10. Download : setup_1.5.0.0_release.eng.zip Release d ate: 20 September 2020 Changelog: * Attention!: - The new property Autosize is enabled for TfgNavigationBar, TfgSwitch and TfgTrackBar by default. So you don't need to have a code for calculating height of NavigationBar. - If you are using non standard Navigation bar height, you have to turn OFF valu Autosize = []. * The new property Autosize was added for TfgNavigationBar, TfgSwitch and TfgTrackBar: - The property allows to enable automatic calculation required size of control. - The automatic calculation is processed only, if size dimension doesn't depends on Flex alignment settings. For example, if a component should be stratched, то автосайз в этом случае не будет применяться. * TfgLabel: - New property ContentPadding was added for correction text output area. - The LetterSpacing property was added for changing space between text glyphs. It's not supported in IDE! * TfgEdit: - New property ContentPadding was added for correction output area. - Now you can specify icon via TfgEdit.IconName, which is displayed on the left side of text. - Small fixes of TfgEdit appearance in IDE. New padding were added. Now the appearance is the same as on Android device. * TfgRadioButton: - The bug of wrong tint color of RadioButton was fixed. * TfgButton: - New properties TintColor and TintColorName were added for possibility recolor button to the required color. * Push-notification: - When developer used Push notification and communicate with other Android activities via Intent, Exception could occure. Fixed. https://forum.fgx-native.com/topic/527-tfgfirebasepushnotification-efgasserterror/?tab=comments#comment-2122 - If user tap on push-notification in Notification Center, when application is in background, OnReceiveNotification is invoked. * Android-Api: - New headers were added "android.provider.*" -> "Android.Api.Providers.*" * Demo samples: - "Android Api" -> "AlarmManager"
  11. Скачать: setup_1.5.0.0_release.rus.zip Дата релиза: 20 сентября 2020 Список изменений: * !Внимание: - Свойство Autosize теперь включено по умолчанию для TfgNavigationBar, TfgSwitch и TfgTrackBar. Поэтому код по расчету высоты панели навигации можно теперь удалить. - Если вы используете нестандартную высоту панели навигации в своих целях, то вам НЕОБХОДИМО сбросить значение свойства Autosize = []. * Добавлено новое свойство Autosize для TfgNavigationBar, TfgSwitch, TfgTrackBar: - Свойство позволяет включить автоматический расчет ширины/высоты компонента. - Автоматический рассчет производится только, когда размер не зависит от настроек выравнивания Flex. Если компонент должен быть растянут, то автосайз в этом случае не будет применяться. * TfgLabel: - Добавлено новое свойство ContentPadding, отвечающее за возможность указать внутренний оступ, используемый для коррекции области отображения текста. - Новое свойство LetterSpacing позволяет указать межсимвольный интервал. Пока не поддерживается в дизайнере! * TfgEdit: - Используя новое свойство ContentPadding, можно менять внутренние оступы для коррекции области отображения содержимого. - Теперь можно указать иконку, отображаемую слева от текста. TfgEdit.IconName свойство. - Подправлено отображение TfgEdit в дизайнере. Добавлены отступы в начале и в конце поля ввода. Теперь внешний вид компонента идентичен виду на устройстве. * TfgRadioButton: - Исправлена ошибка из-за которой компонент использовал серый цвет для кнопки, вместо цвета акцента. * TfgButton: - Добавлены новые свойства TintColor и TintColorName позволяющие перекрасить кнопку в нужный цвет. * Push-уведомления: - При одновременном использовании пуш сервиса и взаимодействии с другими процессами, могла происходит ошибка приводящая к падению приложения. Исправлено https://forum.fgx-native.com/topic/527-tfgfirebasepushnotification-efgasserterror/?tab=comments#comment-2122 - Теперь, если пользователь нажимает на уведомление в центре уведомлений при свернутом приложении, будет срабатывать событие OnReceiveNotification. * Android-Api: - Добавлены новые заголовочные файлы для "android.provider.*" -> "Android.Api.Providers.*" * Демо проекты: - "Android Api" -> "AlarmManager"
  12. В этом релизе еще добавили: 5. Иконка в TfgEdit Теперь можно указать иконку, которая будет выводиться слева от текста TfgEdit.IconName. 6. Внутренние отступы в TfgEdit Аналогично TfgLabel, теперь у поля ввода так же можно менять внутренние отступы TfgEdit.ContentPadding. Это свойство полезно для ограничения области ввода текста, для размещения дополнительных компонентов. Например, таким образом можно добавить кнопку очистки, которая не будет перекрывать вводимый текст. 7. Межбуквенный интервал У TfgLabel появилось новое свойство LetterSpacing, позволяющее изменить межбуквенный интервал. Значение указывается в dp. Свойство не поддерживается пока в дизайнере IDE. Используя это свойство, можно теперь точнее следовать руководству Material Design по типографике: https://material.io/design/typography/the-type-system.html
×
×
  • Create New...