Я перепробовал все возможные комбинации и только одну. что "работает" - это когда не устанавливается начальная тема действия (или все действие) в качестве заставки в манифесте (т. е. android:theme="@style/Theme.App.Starting"< /код>). Но тогда почему документация настаивает на этом? Что я могу сделать, чтобы все работало так, как задумано?
Изменить: соответствующий код по запросу
Splash Theme:
Код: Выделить всё
?android:attr/colorBackground
@mipmap/ic_launcher_round
200
@style/Theme.App
?android:attr/colorBackground
?android:attr/colorBackground
true
Код: Выделить всё
Код: Выделить всё
override fun onCreate(savedInstanceState: Bundle?) {
setupSplashScreen()
super.onCreate(savedInstanceState)
/*...*/
}
Код: Выделить всё
class App : Application() {
override fun onCreate() {
super.onCreate()
// Apply dynamic color
DynamicColors.applyToActivitiesIfAvailable(this)
}
}
После огромного количества испытаний и исследований я пришел к выводу, что это это ошибка, и она не может/не будет исправлена в ближайшее время. Я также определил причину этого.
Об ошибке было сообщено более полутора лет назад, и причина ее возникновения заключается в том, что после вызова библиотеки postSplashScreenTheme, он снова устанавливает базовую тему приложения, которая избавляется от цветов Material You (динамических). В другом проекте возникла та же проблема, из-за которой им не удалось реализовать для себя Material You. Кто-то предложил установить DynamicColors.applyToActivitiesIfAvailable(this) в каждом действии после installSplashScreen(), но строка состояния сохраняла базовый цвет темы вместо динамического цвета, поэтому это было бесполезно. В своих экспериментах я нашел другой обходной путь: не устанавливать какую-либо тему-заставку в манифесте (
Код: Выделить всё
android:theme="@style/Theme.App.Starting"Начиная с этого обновления Splash Screen API и Material You (динамический цвет) конфликтуют друг с другом и поэтому являются взаимоисключающими. Я не буду использовать динамические цвета, так как мне нужна функция загрузки данных при запуске приложения из API-интерфейса заставки.
Подробнее здесь: https://stackoverflow.com/questions/765 ... ash-screen
Мобильная версия