android – 共享元素溢出导航栏中的过渡动画

前端之家收集整理的这篇文章主要介绍了android – 共享元素溢出导航栏中的过渡动画前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当活动将一个转移到另一个共享元素(在新活动中放置在屏幕上)时,覆盖导航栏,如图所示

您也可以在视频view overlay navigation bar中看到此错误

解决方法

(1)通过设置禁用叠加
你的XML中的android:windowSharedElementsUSEOverlay =“false”.禁用时,共享元素将作为被调用的Activity视图层次结构的一部分绘制,从而使共享元素无法在系统UI栏顶部意外重叠.
不幸的是,禁用此行为可能最终会引入新问题……
例如,您可能会发现任一活动中的非共享视图在共享元素转换到位时开始剪切它们.在大多数情况下,您可以通过为XML中的每个共享元素的父级设置android:cliptochildren =“false”和“android:clipToPadding =”false“来防止这种情况发生,但根据具体的用例,可能还需要其他配置.
(2)添加操作栏,状态栏背景和导航栏背景作为附加共享元素
通过使系统禁用共享元素,您可以确保原始共享元素和系统UI在窗口的View层次结构的其余部分上绘制在同一级别.要获取对这些视图的引用,可以使用以下代码

查看decor = getWindow().getDecorView();
查看statusBar = decor.findViewById(android.R.id.statusBarBackground);
查看navBar = decor.findViewById(android.R.id.navigationBarBackground);
查看actionBar = decor.findViewById(getResources().getIdentifier(“action_bar_container”,“id”,“android”));

您可以参考此内容以获得更多讨论this post

猜你在找的Android相关文章