Dee*_*oel 86 android android-animation
我想通过动画在一个活动中交换两个片段.假设PageA用于屏幕A和左侧屏幕,PageB用于片段B,即屏幕右侧.现在我希望当我点击pageA上的一个按钮时,PageA将移动到屏幕的右侧,带有一些过渡动画.
我尝试了以下代码来替换位置
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container, new FragB());
fragmentTransaction.commit();
Run Code Online (Sandbox Code Playgroud)
寻找一些线索.
提前致谢.
小智 267
老问题,你可能已经弄清楚了,但为了将来的参考:
这是您通过代码替换片段时用于设置自定义动画的内容:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
ft.replace(R.id.fragment_container, newFragment, "fragment");
// Start the animated transition.
ft.commit();
Run Code Online (Sandbox Code Playgroud)
以下是slide_in_left动画的示例:
<?xml version="1.0" encoding="utf-8"?>
<set>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-100%"
android:toXDelta="0"
android:interpolator="@android:anim/decelerate_interpolator"
android:duration="500"/>
</set>
Run Code Online (Sandbox Code Playgroud)
请注意,如果您使用兼容性库,这是动画.相反,如果您使用的是SDK和FragmentManager的原生支持,那么您的动画将如下所示:
<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:propertyName="x"
android:valueType="floatType"
android:valueFrom="-1280"
android:valueTo="0"
android:duration="500"/>
</set>
Run Code Online (Sandbox Code Playgroud)
这是因为兼容性库不支持新的objectAnimator类型,而只是实现旧的动画框架.
归档时间: |
|
查看次数: |
85127 次 |
最近记录: |