我有一个活动,我想在活动上添加Fragment
,然后当我点击
一个按钮时,Fragment
应该从底部带有动画地出现。
我有一个活动,我想在活动上添加Fragment
,然后当我点击
一个按钮时,Fragment
应该从底部带有动画地出现。
嗨,您可以通过以下方式在您的活动中添加片段,在您的onClick()
方法中添加以下代码部分:
FragmentTransaction mfragmentTransaction = getFragmentManager().beginTransaction();
//add an animation, you can create your custom animation. Show below
mfragmentTransaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
MFragment mFragment = new MFragment();
mfragmentTransaction.replace(R.id.MFragment, mFragment);
mfragmentTransaction.addToBackStack(null).commit();
slide_in_left.xml
<?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="300"/>
</set>
slide_out_right.xml
<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="300"/>
</set>
这是一个将碎片从左侧动画化到右侧的示例。您可以玩弄XML值,以根据需要更改动画方向。 ;)
你可以使用这个动画。
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="75%p"
android:toYDelta="0%p"
android:fillAfter="true"
android:duration="500" />
</set>
通过代码进行翻译
TranslateAnimation anim = new TranslateAnimation(0, 0, 0, 500);
anim.setDuration(200);
balllayout.startAnimation(anim);
balllayout
是被动画的布局。