Тема дизайна материалов во флаттере - PullRequest
0 голосов
/ 01 октября 2019

Где я могу установить цвета второго дня из https://material.io/resources/color/?

В соответствии с классом ThemeData я должен установить accentColor, что я знаю, как это сделать: "The [accentColor], иногда называемый «вторичным цветом».

После анализа theme_data.dart вы также можете установить colorScheme.secondary. Но установка свойства ColorScheme означает, что вы должны установить все свойства. Вы даже должны установить ColorScheme и переопределить его? Также, где я могу установить цвета Secondary Light и Secondary Dark? Я чувствую себя немного потерянным, так как единственный способ настроить ThemeData - это прочитать весь код темы материала. Или, по крайней мере, большие его части. Есть ли какая-нибудь глубокая документация?

Ответы [ 2 ]

1 голос
/ 01 октября 2019

Где я могу установить цвета второго дня из https://material.io/resources/color/?

В общем, хорошим местом для этого является ThemeData, который можно передать какtheme аргумент MaterialApp.

Но установка свойства ColorScheme означает, что вы должны установить все свойства

Необязательно - если я неправильно истолковал вопрос. ColorScheme имеет метод copyWith(), который принимает набор именованных аргументов. Следовательно, вы можете повторно использовать существующие ColorScheme следующим образом:

final newScehme = someColorScheme.copyWith(background: ...)

Конечно, хитрость заключается в том, чтобы извлечь эту схему. Вы, вероятно, можете получить его, перейдя к свойству ThemeData's colorScheme:

Theme.of(context).colorScheme

Предполагается ли даже установить ColorScheme и переопределить его?

Я не видел в документации ничего такого, что могло бы посоветовать против этого, хотя я не прочесывал все это. Я полагаю, это зависит от вашего варианта использования.

Кроме того, где я могу установить цвета «Вторичный свет» и «Вторичный темный цвет»?

Я не особо разбираюсь в рекомендациях по дизайну материалов. и тонкости, но, возможно, secondary и secondaryVariant - это то, что вы ищете?

Есть ли какая-либо глубокая документация?

Зависит от вашего определения глубины. Следующие ссылки предоставляют разумный обзор различных свойств, связанных с тематикой и цветами:

Также обратите внимание, что в MaterialApp есть свойство darkTheme, которое можно использовать для указания темноготема, когда она запрашивается системой.

В общем, я обнаружил, что ThemeData имеет множество параметров настройки, особенно когда вы комбинируете его с copyWith, который присутствует во многих классах, связанных с темой. Точно ли ThemeData соответствует рекомендациям по дизайну материалов, я не могу сказать с уверенностью. Однако документация довольно хорошо объясняет свойства, поэтому сравнение их с реальными рекомендациями должно дать представление о том, что к чему.

1 голос
/ 01 октября 2019

Возможно, вам нужен метод copyWith, который позволяет переопределять как маленький, так и большой объем родительских ThemeData.

...