【问题标题】:App Turns White Temporaryly when Intent is set with FLAG_ACTIVITY_NEW_TASK and FLAG_ACTIVITY_CLEAR_TASK当 Intent 设置为 FLAG_ACTIVITY_NEW_TASK 和 FLAG_ACTIVITY_CLEAR_TASK 时,应用程序会暂时变白
【发布时间】:2016-01-02 12:26:58
【问题描述】:
Intent intent = new Intent(LoginActivity.this, Profile.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

startActivity(intent);

overridePendingTransition(R.anim.pull_in_right, R.anim.push_out_left);

我在登录后使用此标志清除所有活动堆栈。问题是,由于屏幕瞬间变为白色,过渡变得非常难看。有什么办法可以避免这种情况?

P.S.:这两个活动都以红色作为背景。我想知道白色是从哪里来的。

【问题讨论】:

  • 这种白色显示活动更改需要更多时间。可能是任何网络或其他东西需要更多时间来加载活动
  • 是的,但是有什么我们可以解决的吗?因为当我只是在没有该标志的情况下开始活动时不会发生这种情况。 @CreativeAndroid

标签: android android-layout android-intent android-transitions


【解决方案1】:

在您的应用主题中添加以下行,在片段或活动加载之前禁用窗口预览。(白屏问题

<item name="android:windowDisablePreview">true</item>

here

【讨论】:

  • 不幸的是,如果您这样做,前一个屏幕将在新屏幕加载时保持“冻结”/无响应。您应该使用其他技术将加载的可绘制对象放置为窗口的背景。
  • 是的,我们可以在主题中添加背景并将该主题应用于我们的活动。从而避免白屏问题。将更新我的答案。谢谢@htafoya。
【解决方案2】:

在您的 styles.xml 文件中添加以下行:

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:windowDisablePreview">true</item>
...
</style>

它将禁用新加载屏幕(又名白/黑屏幕)的预览模式。

如果您想在加载新屏幕之前使用自定义背景,请考虑添加以下行:

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="android:windowBackground">@drawable/slash_screen</item>
...
</style>

【讨论】:

    猜你喜欢
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多