gpt4 book ai didi

android - 如何防止工具栏和导航栏在共享 View Activity 转换期间闪烁?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:49 27 4
gpt4 key购买 nike

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- enable window content transitions -->
<item name="android:windowContentTransitions">true</item>
<item name="android:windowActionBarOverlay">false</item>
<item name="android:windowSharedElementsUseOverlay">false</item>

</style>

或者从转换中排除 java 类导航和状态栏

    View decor = ((PhotosActivity)context).getWindow().getDecorView();
View statusBar = decor.findViewById(android.R.id.statusBarBackground);
View navBar = decor.findViewById(android.R.id.navigationBarBackground);


ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation((PhotosActivity) context,
new android.support.v4.util.Pair<>(photo, "photo")
new android.support.v4.util.Pair<>(statusBar, Window.STATUS_BAR_BACKGROUND_TRANSITION_NAME),
new android.support.v4.util.Pair<>(navBar, Window.NAVIGATION_BAR_BACKGROUND_TRANSITION_NAME));
);
context.startActivity(photoIntent, options.toBundle());

它继续闪烁

最佳答案

View decor = getWindow().getDecorView(); 这个decor View 用来获取默认的操作栏。

makeSceneTransitionAnimation 用于定义两个 Activity 之间的共享小部件。

防止操作栏、状态栏和导航栏闪烁。请在 2 个 Activity 的 onCreate 方法中添加以下代码行:

Fade fade = new Fade();
View decor = getWindow().getDecorView();
fade.excludeTarget(decor.findViewById(R.id.action_bar_container), true);
fade.excludeTarget(android.R.id.statusBarBackground, true);
fade.excludeTarget(android.R.id.navigationBarBackground, true);

getWindow().setEnterTransition(fade);
getWindow().setExitTransition(fade);

关于android - 如何防止工具栏和导航栏在共享 View Activity 转换期间闪烁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38177913/

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