gpt4 book ai didi

android - 使用 DrawerLayout 打开 Activity 时如何消除延迟?

转载 作者:IT老高 更新时间:2023-10-28 23:34:49 27 4
gpt4 key购买 nike

我有一个带有 DrawerLayout 的 Activity ,但是每当它打开时,都会有一个延迟,例如屏幕为白色的瞬间,然后我的屏幕被绘制。

这发生在转换完成后。所以看起来屏幕动画过渡是跳跃的。

在将 View 与 ButterKnife 绑定(bind)后,我尝试将它放在我的 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;
}
});
}

是的,我正在为 Lollipop 优化它,对于 Lollipop 之前的设备,我只是使用 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>

最佳答案

我终于找到了解决办法。我不知道为什么或如何解决,但我只知道它消除了动画中的延迟。我在 Activity 的 OnCreate 中添加了一个处理程序,该处理程序将运行其他语句进行设置,即在 300 毫秒后将初始 fragment 添加到 View 中

Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
switchFragment();
}
}, 300);

关于android - 使用 DrawerLayout 打开 Activity 时如何消除延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32472697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com