如何从底部动画化片段。

3

我有一个活动,我想在活动上添加Fragment,然后当我点击一个按钮时,Fragment应该从底部带有动画地出现。

3个回答

3

嗨,您可以通过以下方式在您的活动中添加片段,在您的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值,以根据需要更改动画方向。 ;)


0

你可以使用这个动画。

<?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>

0

通过代码进行翻译

 TranslateAnimation anim = new TranslateAnimation(0, 0, 0, 500); 
 anim.setDuration(200);
 balllayout.startAnimation(anim);

balllayout 是被动画的布局。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接