你好堆栈溢出的程序员!我已经度过了这个问题的好一周,现在我非常渴望一个解决方案.
我正在使用android.app.Fragment,不要与支持片段混淆.
我有6个子片段命名为:
FragmentOneFragmentTwoFragmentThreeFragmentAFragmentBFragmentC我有2个父片段命名:
FragmentNumericFragmentAlpha我有1个名为的活动:
MainActivity他们表现如下:
你可能已经猜到了,
FragmentNumeric显示子片段FragmentOne,FragmentTwo和FragmentThree.
FragmentAlpha显示子片段FragmentA,FragmentB和FragmentC.
我正在尝试过渡/动画父母和子女片段.儿童片段按预期顺利过渡.但是,当我转换到新的父片段时,它看起来很糟糕.子片段看起来像是从其父片段运行独立过渡.并且子片段看起来也像是从父片段中删除的.它的gif可以在这里查看https://imgur.com/kOAotvk.注意单击Show Alpha时会发生什么.
我能找到的最接近的问题和答案是:嵌套片段在过渡动画期间消失,但所有答案都不满意.
我有以下动画效果(持续时间很长,用于测试目的):
fragment_enter.xml
<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="4000"
android:interpolator="@android:anim/linear_interpolator"
android:propertyName="xFraction"
android:valueFrom="1.0"
android:valueTo="0" />
</set>
Run Code Online (Sandbox Code Playgroud)
fragment_exit.xml
<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="4000"
android:interpolator="@android:anim/linear_interpolator"
android:propertyName="xFraction"
android:valueFrom="0"
android:valueTo="-1.0" />
</set>
Run Code Online (Sandbox Code Playgroud)
fragment_pop.xml
<?xml version="1.0" encoding="utf-8"?> …Run Code Online (Sandbox Code Playgroud) android android-fragments fragmenttransaction android-nested-fragment fragment-animation
你好再次堆栈溢出.我有另一个片段问题.(我正在使用android.app.Fragment而不支持片段)
我正在尝试更换片段.但这不像使用那么简单:
fragmentTransaction
.replace(containerId, newFragment)
.addToBackStack("unique tag")
.commit()
Run Code Online (Sandbox Code Playgroud)
为什么不?好朋友问,因为我newFragment有过渡动画.
动画在哪里定义?另一个很棒的问题,它在碎片onCreateAnimator()中定义
为什么在那里定义?可以找到原因的长答案:嵌套片段转换不正确.现在你需要相信这就是我的项目需要做的事情.
动画是做什么的?从屏幕边缘到其中心的简单滚动,完全覆盖原始片段.请记住,在这种情况下,旧片段只是坐在原地.它具有不移动的动画效果.
问题是newFragment似乎比旧版本具有更低的高程(或z?)值.因此,无法观察到过渡,因为旧片段位于新片段上方.到达动画持续时间结束时,您会看到新片段在旧片段上方闪烁.我期望newFragment从动画开始就覆盖旧版本.
为什么不使用添加?这似乎会产生更多问题,因为我有很多片段要交换进出视图.使用add似乎会在下次使用replace时触发它们的退出动画,即使前面有1 ... n个片段.他们也不会停顿.
为什么不设置高程?因为我支持没有提升属性的api 19.
为什么不对api 19使用ViewCompat.setElevation()?我尝试了它并且有相同的失败结果.
有没有人找到解决这个问题的方法?
android android-fragments fragmenttransaction android-transitions fragment-animation
我在片段中有一个 Exoplayer 视图,当我从活动中对片段容器视图进行动画处理时,exo 播放器将变黑。
我曾经setKeepContentOnPlayerReset(true);保留最后一帧,效果很好。
但是,当我在视频结束后在片段容器视图(即帧布局)上调用动画(滑动动画)时,Exo 播放器将显示黑屏。(即使片段退出过渡也会在 Exo 播放器上产生相同的问题,这次我没有替换片段,只是对容器视图进行动画处理,问题仍然存在)
我没有任何与此问题相关的线索,这将是如果有人可以分享一些与此相关的想法,那将非常有帮助。欢迎与此相关的所有建议和答案。谢谢。