代码之家  ›  专栏  ›  技术社区  ›  Denis Steinman

如何在没有动画的情况下切换活动?

  •  0
  • Denis Steinman  · 技术社区  · 4 年前

    我读了很多类似的问题,但没有一个解决方案对我有帮助 LauncherActivity :

    class LauncherActivity : AppCompatActivity(), DIAware {
        override val di by closestDI()
        private val getAccount: GetAccountUseCase by instance()
    
        override fun onCreate(savedInstanceState: Bundle?) {
            installSplashScreen()
    
            val activityClass = if (this.getAccount() == null) {
                LoginActivity::class.java
            } else {
                MainActivity::class.java
            }
    
            val intent = Intent(this, activityClass)
                .addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
            startActivity(intent)
            overridePendingTransition(0,0)
            finish()
    
            super.onCreate(savedInstanceState)
        }
    }
    

    不过,只要我不打电话 finish() .如果我打电话 finish() 动画开始再次显示。

    问题出在哪里?我已经重试了这些行和标志的所有可能组合,它不适用 finish()

    P.S。 我知道我可以使用样式来关闭动画,但这不适合我的目的,我需要一个通过编程实现的解决方案。

    0 回复  |  直到 4 年前
        1
  •  0
  •   Ömer Seyfettin Yavuzyiğit    4 年前

    主题.xml

    <style name="noAnimation" parent="android:Theme">
       <item name="android:windowAnimationStyle">@null</item>
    </style>
    

    AndroidManifest.xml

    <activity android:name=".LauncherActivity" 
       android:theme="@style/noAnimTheme">
        </activity>