Android, как ждать завершения анимации перехода setTheme? - PullRequest
0 голосов
/ 02 декабря 2018

РЕДАКТИРОВАТЬ: ОК, похоже, ошибка эмулятора -_-, потому что на реальном устройстве их нет проблем ..

У меня есть два действия.Основное действие вызывает SignInActivity, когда оно начинается следующим образом:

import android.app.Activity
import android.content.Intent
import android.os.Bundle

class MainActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        setTheme(R.style.AppTheme)
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    override fun onStart() {
        super.onStart()
        val token = TokenStore.getToken(this)
        if (token == null) {
            val intent = Intent(this, SignInActivity::class.java)
            startActivity(intent)
        }
    }
}

Я использую трюки с темами для заставки моего приложения.В AndroidManifest.xml я установил фон заставки с помощью стиля

<activity android:name=".MainActivity"
    android:theme="@style/LauncherTheme">

Тема заставки

   <style name="LauncherTheme" parent="Theme.MaterialComponents.NoActionBar">
        <item name="android:windowBackground">@drawable/launch_screen</item>
        <item name="android:colorPrimaryDark">@color/colorBackground</item>
    </style>

Когда я использую основное действие без запуска действия входа,Заставка работает очень хорошо: когда начинается основное действие, она заменяет тему заставки на обычную с setTheme(R.style.AppTheme), и заставка плавно исчезает с исчезающей анимацией.Проблема заключается в следующем: если присутствует код для запуска SignInActivity, анимация затухания не завершается при запуске SignInActivity, и это нарушает переход затухания: я отчетливо вижу «мерцание» заставки и анимация прерывистая.

Обратите внимание, что я использую компонент материала (новая библиотека androidx)

Мои вопросы:

  1. Как мне ждать, пока эта затухающая анимациязакончить?
  2. Откуда эта анимация исчезновения?(От себя я ничего для этого не настроил)
...