Я уверен, что мне не удастся ответить на все ваши вопросы исчерпывающе, но я поделюсь некоторыми мыслями, может быть, это продвинет вас на один или два шага дальше:
Что означает [..]. NoActionBar?
Вы должны использовать тему, заканчивающуюся на ".NoActionBar", если вы не хотите, чтобы среда выполнения добавляла ActionBar
к Activity
, возможно, потому что вы используйте Toolbar
. Если вы выберете, например, Theme.MaterialComponents.Light
и также используете Toolbar
, вы заметите, что теперь ваше приложение будет отображаться с двумя ActionBar
s
Обратите внимание, что если какая-то тема называется «MyTheme» затем тема с префиксом «MyTheme». унаследует все от "MyTheme". Так что Theme.MaterialComponents.Light.NoActionBar
- это почти то же самое, что и Theme.MaterialComponents.Light
, за исключением ActionBar
.
Так что, если вы действительно не хотите ActionBar
, вам следует выбрать .NoActionBar
версию и не включать суррогат (Toolbar
) в файлы макета.
Что определяют эти темы? Только цвета? Стиль текста? Семейство шрифтов?
Они делают это, но они также определяют размеры, поля и поведение. В дополнение к этому, некоторые из них имеют специальные комбинации стилей для определенных виджетов (например, style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
для TextInputLayout
)
Для глубокого погружения в то, на какие свойства может влиять тема, вы можете посмотреть у источника themes_material. xml
Когда я буду использовать только Theme.MaterialComponents? Или я всегда буду использовать Theme.MaterialComponents.Light или Theme.MaterialComponents.DayNight?
Поскольку Theme.MaterialComponents
является родительской темой Theme.MaterialComponents.Light
, у них много общего. Основное отличие состоит в том, что первое предполагает, что ваше приложение будет иметь темный фон (поэтому текст должен быть белым), тогда как второе будет иметь черный текст и предполагает, что фон вашего приложения будет светлым.
Как правило, один будет попробуйте использовать определенную тему в качестве шаблона, которую затем можно / нужно настроить - например, с помощью специального цветового акцента.
Как выглядят эти темы?
Вы можете получить общее представление, переключившись с одного на другое в своем собственном небольшом приложении.
Это правда, что не существует ни одного единственного источника информации (иначе android тематическая библия). Вы уже нашли material.io , но, возможно, раздел Стили и темы от разработчика. android .com или это сообщение в блоге на DayNight - Добавление темной темы в ваше приложение прольет еще немного света.