Joh*_*upe 16 animation android material drawerlayout android-transitions
我有一个带有DrawerLayout的活动但是无论什么时候它打开都有一个延迟,就像分秒,屏幕是白色的,然后画出我的屏幕.
转换结束后会发生这种情况.所以它有点像屏幕动画过渡是跳跃.
在将视图与ButterKnife绑定后,我尝试将它放在我的OnCreate上,但它没有做任何事情.
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;
}
});
}
Run Code Online (Sandbox Code Playgroud)
是的我正在为Lollipop优化它,对于Lollipop之前的设备,我是jsut使用overridePendingTransitions,它工作正常.我的问题只在Lollipop设备上.
顺便说一句,我的Enter和Exit转换都是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>
Run Code Online (Sandbox Code Playgroud)
我终于找到了解决方案.我不知道为什么或如何成功,但我知道它消除了动画的延迟.我OnCreate在活动中添加了一个处理程序,该处理程序将运行其他语句进行设置,即在300ms后将初始片段添加到视图中
Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
switchFragment();
}
}, 300);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2471 次 |
| 最近记录: |