Какова цель маркера платформы «по умолчанию» в списке стилей tstylebook?

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

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

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

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

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

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


person DDeberla    schedule 30.04.2020    source источник
comment
В реальной жизни вы бы предпочли начать с пустой книги стилей и добавлять стили только для каждого используемого вами визуального компонента (используя стиль редактирования по умолчанию или параметр редактирования пользовательского стиля в контекстном меню). Меньшие стили для управления, но вы теряете преимущество, начиная с существующего «настоящего» стиля.   -  person DDeberla    schedule 01.05.2020


Ответы (1)


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

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

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

person DDeberla    schedule 01.05.2020