Android半透明活动黑屏

时间:2018-08-11 10:45:46

标签: java android xml android-intent android-activity

前言:

我建立了自己的导航侧边栏,主要由一个宽度固定的活动组成  50%,为了让活动看起来像真实的侧边栏,我必须将活动设置为半透明

<style name="AppThemeDark.TransparentWindow">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowCloseOnTouchOutside">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:backgroundDimEnabled">false</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
</style>

问题:

因此,当我在侧边栏上单击时,我想用新数据重新加载MainActivity。一切工作正常,问题在于关闭侧边栏,然后重新启动MainActivity,我得到了一个完整的黑屏,可能持续1秒钟。通过切换其他“正常”活动,我已经遇到了类似的问题,但是那是您可以看到的活动背景。我可以通过以下方法解决问题:

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

现在我所有的常规活动都切换了,没有任何动画和延迟!

MainActivity:

<style name="AppThemeDark" parent="Theme.AppCompat.NoActionBar">
    <item name="colorPrimaryDark">@color/colorBackground_DARK</item>
    <item name="colorAccent">@color/colorAccentDark_DARK</item>
    <item name="circularProgressBarStyle">@style/CircularProgressBar</item>
    <item name="android:colorBackground">@color/colorBackground_DARK</item>
    <item name="colorPrimary">@color/colorBackground_DARK</item>
    <item name="android:windowAnimationStyle">@null</item>
    <item name="android:windowDisablePreview">true</item>
</style>

我的所有活动也在以下位置启动:

android:launchMode="singleTask"

我如何使用清洁烟囱重新开始活动:

Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
              Intent.FLAG_ACTIVITY_CLEAR_TASK |
              Intent.FLAG_ACTIVITY_NO_ANIMATION|
              Intent.FLAG_ACTIVITY_SINGLE_TOP);
 startActivity(intent);
 overridePendingTransition(0,0);

现在,当我从MainActivtiy调用此函数时,发生了奇怪的事情,例如通过拉动刷新一切正常。如果我从补充工具栏调用此方法也一切正常,但是我会遇到黑屏延迟,例如应用程序重新启动完成。 我的怀疑是唯一的原因是执行活动是半透明的。 希望你能帮助我。

0 个答案:

没有答案