У меня есть тестовый многомодульный проект, и некоторые модули не видят тему моего приложения. Более подробно, это следующие модули: app, common, home & details.
Модуль app содержит действие и навигацию, common содержит строки и стиль, а home / detail содержит фиктивный фрагмент. Все фрагменты реализуют общий модуль, который содержит мой стиль.
// Modules
implementation project(path: ':navigation')
implementation project(path: ':common')
Так что, когда я go в редакторе макета занятия и пытаюсь изменить тему из предварительного просмотра, я вижу и выбираю свою тему.
Но я go для макета HomeFragment такой опции не существует.
Конечно, стиль работает, как и ожидалось, когда я запускаю приложение, единственная проблема заключается в том, что предварительный просмотр не работает. Вот тема, которая находится в общем модуле:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="Theme.Leanback.Browse">
<!-- Theme.AppCompat compatibility: -->
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<!-- Theme.MaterialComponents compatibility: -->
<item name="colorPrimary">#171717</item>
<item name="colorPrimaryVariant">#212121</item>
<item name="colorAccent">#DD1C1A</item>
<item name="colorOnPrimary">#eeeeee</item>
<item name="colorSecondary">#FFEB3B</item>
<item name="colorSecondaryVariant">#FFC107</item>
<item name="colorOnSecondary">#eeeeee</item>
<item name="colorSurface">#2196F3</item>
<item name="colorOnSurface">#eeeeee</item>
</style>
</resources>
Одна вещь, которую я заметил во время проб и ошибок, это то, что если я изменю родителя своей темы с Leanback на Theme.AppCompat, предварительный просмотр будет работать, но я могу не делай этого, так как мне нужен Leanback. Наконец, все модули, кроме первого приложения, являются библиотечными модулями apply plugin: 'com.android.library'
Моя установка windows 10 P C, и я использую Android Studio 4 Canary 8. Я также проверил это на Android Studio 4 Canary 2 с такими же результатами.
Редактировать: Решение Установить тему по умолчанию в манифесте модуля, спасибо @Martin Zeitler
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.home">
<application android:theme="@style/AppTheme" />
</manifest>