У меня есть активность с DrawerLayout, но всякий раз, когда он открывается, происходит отсрочка, такая как секундная секция, где экран белый, тогда мой экран рисуется.
Это происходит после завершения перехода. Таким образом, это похоже на переход к анимации экрана.
Я попытался поместить это в свой OnCreate после привязки взглядов к ButterKnife, но ничего не сделал.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
postponeEnterTransition();
drawerLayout.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public boolean onPreDraw() {
drawerLayout.getViewTreeObserver().removeOnPreDrawListener(this);
startPostponedEnterTransition();
return true;
}
});
}
Да, я оптимизирую его для Lollipop, а для устройств pre-Lollipop я использую overridePendingTransitions
, и он отлично работает. Моя проблема заключается только в устройствах Lollipop.
Btw, мои переходы "Enter" и "Выход" являются fade_in_out
, определенными в xml и указанными в styles
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorAccent">@color/pink</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowActivityTransitions">true</item>
<item name="android:windowContentTransitions">true</item>
<!-- specify enter and exit transitions -->
<!-- options are: explode, slide, fade -->
<item name="android:windowEnterTransition">@transition/fade_in_out_transition</item>
<item name="android:windowExitTransition">@transition/fade_in_out_transition</item>
<!-- specify shared element transitions -->
<item name="android:windowSharedElementEnterTransition">@transition/change_clip_bounds</item>
<item name="android:windowSharedElementExitTransition">@transition/change_clip_bounds</item>
<item name="android:windowSoftInputMode">stateAlwaysHidden|adjustResize</item>
</style>