Sco*_*Zhu 20 animation android android-support-library
我在使用时收到此错误
getActivity().getSupportFragmentManager()
.beginTransaction()
.setCustomAnimations(
R.animator.card_flip_right_in, R.animator.card_flip_right_out,
R.animator.card_flip_left_in, R.animator.card_flip_left_out)
.replace(R.id.content_fragment, new DaysSinceBirthSettingFragment())
.addToBackStack(null)
.commit();
Run Code Online (Sandbox Code Playgroud)
但是当我改变它
getActivity().getFragmentManager()
.beginTransaction()
.setCustomAnimations(
R.animator.card_flip_right_in, R.animator.card_flip_right_out,
R.animator.card_flip_left_in, R.animator.card_flip_left_out)
.replace(R.id.content_fragment, new DaysSinceBirthSettingFragment())
.addToBackStack(null)
.commit();
Run Code Online (Sandbox Code Playgroud)
它完美无缺.但我需要支持旧版本,所以我必须使用support-v4,它getSupportFragmentManager()
来自.
我读了一些文章说res/animator
支持-v4不支持,所以我也尝试将我的动画XML文件移动到res/anim
文件夹中并引用它R.anim.card_flip_right_in
但它仍然没有用,任何人都可以告诉我,我该怎么办?
q1p*_*q1p 23
支持片段管理器不支持动画师(仅限动画).异常消息说你的xml资源中的动画格式错误,可能是因为你已经将动画师移动到这个错误的xml(因为它们有不同的表示法).您需要以适当的方式编写它:http://developer.android.com/guide/topics/graphics/view-animation.html
Jin*_*inu 10
如果您正在使用支持片段,请在res中添加以下xml文件
以下是anim/fragment_slide_left_enter.xml文件的内容.
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="100%p"
android:interpolator="@android:interpolator/decelerate_quint"
android:toXDelta="0%p" />
<alpha
android:duration="@android:integer/config_mediumAnimTime"
android:fromAlpha="0.0"
android:interpolator="@android:interpolator/decelerate_quint"
android:toAlpha="1.0" />
</set>
Run Code Online (Sandbox Code Playgroud)
以下是anim/fragment_slide_left_exit.xml的内容
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="0%p"
android:interpolator="@android:interpolator/decelerate_quint"
android:toXDelta="-100%p" />
<alpha
android:duration="@android:integer/config_mediumAnimTime"
android:fromAlpha="1.0"
android:interpolator="@android:interpolator/decelerate_quint"
android:toAlpha="0.0" />
</set>
Run Code Online (Sandbox Code Playgroud)
以下代码将是anim/fragment_slide_right_enter.xml文件的内容
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="-100%p"
android:interpolator="@android:interpolator/decelerate_quint"
android:toXDelta="0%p" />
<alpha
android:duration="@android:integer/config_mediumAnimTime"
android:fromAlpha="0.0"
android:interpolator="@android:interpolator/decelerate_quint"
android:toAlpha="1.0" />
</set>
Run Code Online (Sandbox Code Playgroud)
以下代码将是anim/fragment_slide_right_exit.xml文件的内容
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="0%p"
android:interpolator="@android:interpolator/decelerate_quint"
android:toXDelta="100%p" />
<alpha
android:duration="@android:integer/config_mediumAnimTime"
android:fromAlpha="1.0"
android:interpolator="@android:interpolator/decelerate_quint"
android:toAlpha="0.0" />
</set>
Run Code Online (Sandbox Code Playgroud)
最后在片段转换代码中添加此行
ft.setCustomAnimations(R.anim.fragment_slide_left_enter,
R.anim.fragment_slide_left_exit,
R.anim.fragment_slide_right_enter,
R.anim.fragment_slide_right_exit)
Run Code Online (Sandbox Code Playgroud)