java如何将Android导航架构片段动画化为在旧片段上滑动?
在导航图中定义的导航操作示例中:
<action
安卓:id="@+id/action_fragment1_to_fragment2"
app:destination="@id/fragment2"
app:enterAnim="@anim/right_slide_in"
app:popExitAnim="@anim/left_slide_out"/>
当Fragment2
打开并开始从右侧滑入视图时,Fragment1
立即消失(可悲)。当Fragment2
关闭并开始向右滑动时,Fragment1
在其下方清晰可见,提供了很好的堆栈弹出效果(与iOS相当)
当Fragment2
幻灯片进入视图时,如何保持Fragment1
可见
# 1 楼答案
编辑: 这不是最优雅的解决方案,它实际上是一个技巧,但它似乎是解决这种情况的最佳方法,直到
NavigationComponent
包含更好的方法因此,我们可以在
Fragement2
的onViewCreated
方法中增加translationZ
(从API 21开始),使其出现在Fragment1
之上例如:
正如very nice@xinaiz建议的那样,我们可以使用
100f
或任何其他随机值来为片段指定比前一个更高的高程该解决方案由@JFrite在此线程中提出
FragmentTransaction animation to slide in over top
更多细节可以在那里找到
# 2 楼答案
我认为使用
R.anim.hold
动画会产生你想要的效果:或者只是在行动中给它贴上标签
下面是上面提到的
R.anim.hold
动画:# 3 楼答案
在我自己的例子中,最简单的解决方案是使用
DialogFragment
和适当的动画和风格风格:
布局:
爪哇: