我正在尝试实现滑动动画从fragment1转换到fragment2,如
this image.
首先,我尝试用set和translate实现xml,但是我得到了RuntimeException“Unknown animator name translate”.
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:fromXDelta="0%p"
android:toXDelta="-100%p"
android:duration="500">
</translate>
</set>
其次,我试图通过使用扩展framelayout的类来解决问题,并添加“getXFraction”和“setXFraction”方法,如this post
public class SlidingFrameLayout extends FrameLayout
{
private static final String TAG = SlidingFrameLayout.class.getName();
public SlidingFrameLayout(Context context) {
super(context);
}
public SlidingFrameLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public float getXFraction()
{
final int width = getWidth();
if(width != 0) return getX() / getWidth();
else return getX();
}
public void setXFraction(float xFraction) {
final int width = getWidth();
setX((width > 0) ? (xFraction * width) : -9999);
}
public float getYFraction()
{
final int height = getHeight();
if(height != 0) return getY() / getHeight(); else return getY();
}
public void setYFraction(float yFraction) {
final int height = getHeight();
setY((height > 0) ? (yFraction * height) : -9999);
}
}
但我仍然不知道我应该如何使用SlidingFrameLayout?
请帮我. T___T
最佳答案 您需要使用objectAnimator而不是translate.以下是一些带有示例的帖子:
Animate the transition between fragments和
Android Fragments and animation