问题
我有一个名为Activity A的Activity,它定义了以下转换。
.then
当我调用Activity A时,一切正常。状态栏保持原样,但appbar会在屏幕上显示动画。但是,当我通过A运行活动B时,幻灯片转换并不尊重状态栏。状态栏消失,但appbar保持固定(正确地从动画中排除)。
我尝试了什么
如果我注释掉了slideexit的代码并且仅在A中保持输入转换,则状态栏在从A转换为B期间保持固定。这证明问题出现在B被调用之前。问题在于A的退出转换。
A退出转换并不排除状态栏并将其关闭。 B只是将它滑回来。
这是我的styles.xml
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public static void slideAnimation(Window window) {
//runs when the activity is being entered
//runs in reverse when the activity is being destroyed
Slide slideEnter = new Slide();
slideEnter.setDuration(mShortAnimationDuration);
slideEnter.excludeTarget(android.R.id.statusBarBackground, true);
slideEnter.excludeTarget(R.id.app_bar_layout, false);
window.setEnterTransition(slideEnter);
//runs when the calling activity is exiting
// runs in reverse when the activity is reentering
Slide slideExit = new Slide();
slideExit.setDuration(mShortAnimationDuration);
slideExit.excludeTarget(android.R.id.statusBarBackground, true);
slideExit.excludeTarget(R.id.app_bar_layout, false);
window.setExitTransition(slideExit);
}
这是我调用我的活动的方式
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
</style>
我在支持库版本为24.2.1的HTC 10上使用了nouget 7.0。 我坚信这是一个框架问题,因为我清楚地记得这个工作去年可能是3个月前左右。
或者我做错了什么?