Мы применяем к приложению темные и светлые темы.Наша оригинальная тема будет светлой.В этой ситуации у меня проблема с изменением цвета реального перехода в деятельности.При переключении между действиями я применяю анимацию, используя этот код:
finish();
startActivity(new Intent(this, MainActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
Это оставляет фон, который мы установили для темы приложения в манифесте , который выглядит следующим образом:
<activity
android:name=".MainActivity"
android:theme="@style/MyStyle_Light" />
где стили выглядят примерно так:
<style android:name="MyStyle_Light" parent="Theme.AppCompat.Light">
<!-- some style resources -->
</style>
<style android:name"MyStyle_Dark" parent="Theme.AppCompat">
<!-- some style resources -->
</style>
Теперь стиль Theme.AppCompat.Light имеет светлый фон на своем окне.Он определяется внутри действия из AndroidManifest.xml .
Чтобы изменить тему занятия, я использую такой код, и он работает после просмотра исходного цвета, полученного изпроявляется при самом первом открытии.
@Override
public void onCreate()
{
setTheme(R.style.MyStyle_Dark); // can also be MyStyle_Light depending on user choice
super.onCreate();
setContentView(R.layout.MyLayout);
// rest goes on
}
Проблема заключается в исходном цвете, который появляется после анимации постепенного исчезновения и постепенного появления, потому что даже если пользователь выбирает темную тему, так как MyStyle_Light на тему манифеста, они всегда видят светлый фон на анимации затухания.
Как изменить цвет фона, который исходит из манифеста?
Вещи, которые ядо сих пор пробовал или думал:
- Использование "android: windowBackground", которое не работает,
- Установка темы в классе приложения без использованиятема в манифесте, которая также не работает.
- Использование атрибута в манифесте для изменения стилей во время выполнения из .xml, который, я не думаю, будет работать, так как не к чему обращаться,(Только что попробовал, это не работает.)
- Использование дублированного действия с другим ресурсом темы, прикрепленным к манифесту, и запуск его в зависимости от выбора пользователя (мне кажется, не нужен)
Любое предложение приветствуется, спасибо.