Какова цель маркера платформы «по умолчанию» в списке стилей tstylebook? - PullRequest
1 голос
/ 01 мая 2020

ОБНОВЛЕНИЕ: я создал новый тестовый проект с нуля, и этот DID применил стиль внутри маркера платформы по умолчанию на моей основной форме на windows и android, поэтому поведение, показанное ниже, может иметь некоторые проблемы с остальной частью моего проект ... Я сделаю еще несколько тестов. (У меня есть 1 стиль 'backgroundstyle' с прямоугольником bru sh Цвет заливки установлен на красный)

ОБНОВЛЕНИЕ 2: Как только я добавил 1 конкретный c стиль например, платформа android, ни один из стилей платформы по умолчанию больше не рассматривается. Mainform внезапно перестал краснеть.

В героической попытке c создать хороший дизайн стилей для моего концептуального мультиплатформенного приложения, я стал более внимательно изучать книгу стилей. В общем, отделение стилей от логинов приложения c, конечно, очень приветствуется. Хотя я более не уверен, что реализация этого принципа в fmx, мягко говоря, оптимальна (я теряю себя в поиске того, какое свойство какого стилевого ресурса мне нужно изменить, чтобы получить то, что я хочу для чего-либо, кроме простого текста или прямоугольников). ..но это может быть до меня.) Я также понимаю, что у каждой целевой платформы есть свои привычки, и это хорошая практика придерживаться их (по крайней мере, если вы хотите быть частью препятствий :-). Но я бы сказал, что, например, мои основные цвета приложений - это то, что я решаю, и должно быть согласованным на разных платформах. Похоже, что для достижения этого мне нужно изменить это, возможно, для всех нескольких отдельных стилей --resources-- (везде цвет заливки может быть указан / может быть указан в каждом из 190 стилей в списке, а также в все растровые изображения в растровой карте, и это для каждого масштаба и каждого sourcelinkname ..) и, опять же, это для каждой целевой платформы ... В результате обычно я придерживаюсь «премиум» из стандартных стилей коробки: - )
Я надеялся, что маркер платформы «по умолчанию» придет на помощь, и эта платформа для всех стилей, и ПО ИСКЛЮЧЕНИЮ, будет иметь только некоторые стили, определенные c для платформы, повторенные и измененные, если это действительно необходимо на этой платформе. В документации сказано:

Примечание. Также имеется маркер платформы «По умолчанию». Приложение FireMonkey загружает> стиль по умолчанию, когда приложение не может найти подходящие стили для> текущей платформы.

Но, похоже, это не сработает. например, в android эти стили по умолчанию (во время выполнения) всегда игнорируются и возвращаются к стилю, указанному для встроенной платформы c, но в windows стили действительно используются ... (в IDE во время разработки используется то же значение по умолчанию стиль отображается так, как я ожидаю для каждой выбранной платформы -) В моем примере я просто использую цвет фона основной формы (= backgroundstyle bru sh заливка) в качестве простой настройки теста: измените заливку bru sh на 'backgroundstyle'
для платформы по умолчанию и запустите ее на windows / android).

Так, какова цель платформы по умолчанию в книге стилей? Есть что-то, чего я не понимаю? Или это ошибка? Есть ли способ использовать один набор стилей для разных платформ через книгу стилей? Если нет, то не могли бы вы создать и развернуть один файл стиля и загрузить его во время выполнения и использовать ли он на всех платформах? (должен ли быть маркер платформы в этом файле стилей? Будут ли стили игнорироваться, если это не «действительно» правильная целевая платформа ...)
В результате я обнаруживаю, что выполняю много стилей исполнения во время выполнения кода, поскольку Я действительно уверен, что это будет согласовано с платформой, но это не совсем цель, я думаю ....

1 Ответ

0 голосов
/ 01 мая 2020

Кажется, что когда вы устанавливаете для свойства stylebook 'UseStyleManager' значение true, этот (первый) стиль действительно ... используется :-), независимо от платформы. Это также означает, что когда ваш контейнер стилей не содержит нужных ресурсов для стилей, ваши компоненты, вероятно, невидимы! Но когда они доступны, они отображаются на всех платформах. Это может быть личное предпочтение иметь только один стиль (определение), и при необходимости сделайте исключение. Но по моему опыту, работа со списком стилевых ресурсов занимает много времени, поэтому чем меньше «наборов», которые мне нужно проверить, тем лучше. Если мне все еще понадобится другой стиль для конкретной платформы c, мне нужно будет перезаписать имя stylelookup во время выполнения для этого компонента на этой конкретной платформе c и, конечно же, добавить это конкретное имя c stylelookup к моему Контейнер стилей по умолчанию (Простое добавление новой платформы в вашу книгу стилей и использование того же имени поиска не будет работать, потому что в этой настройке это игнорируется).

...