Для чего нужен маркер платформы "по умолчанию" в списке стилей tstylebook?

ОБНОВЛЕНИЕ: я создал новый тестовый проект с нуля, и этот ДЕЙСТВИТЕЛЬНО применил стиль внутри маркера платформы по умолчанию на моей основной форме на Windows и Android, поэтому поведение, показанное ниже, может иметь какое-то отношение к остальной части моего проекта... Я сделаю кое-что больше тестов (у меня есть 1 стиль backgroundstyle с красным цветом заливки прямоугольной кисти)

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

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

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

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

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

1 ответ

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

Может быть личным предпочтением иметь только один стиль (определение) и при необходимости делать исключение. Но по моему опыту, просмотр и работа со списком ресурсов стиля отнимает много времени, поэтому чем меньше "наборов" мне нужно проверить, тем лучше.

Если мне все еще нужен другой стиль для конкретной платформы, мне нужно будет перезаписать имя stylelookup во время выполнения для этого компонента на этой конкретной платформе и, конечно, также добавить это конкретное имя stylelookup в мой контейнер стилей по умолчанию (просто добавив новую платформу в вашу книгу стилей и использование того же имени поиска не будет работать, потому что оно игнорируется в этой настройке).

Другие вопросы по тегам