如何添加动画DialogFragment? [英] How to add animation to DialogFragment?

查看:845
本文介绍了如何添加动画DialogFragment?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我如何添加动画DialogFragment。我的动画是:

出动画:

 <规模
    机器人:时间=200
    机器人:fillAfter =假
    机器人:fromXScale =1.0
    机器人:fromYScale =1.0
    机器人:插值=@机器人:动画/ linear_interpolator
    机器人:pivotX =50%
    机器人:pivotY = - 90%
    机器人:startOffset =200
    机器人:toXScale =0.5
    机器人:toYScale =0.5/><翻译
    机器人:时间=300
    机器人:fromXDelta =0
    机器人:fromYDelta =0
    机器人:toXDelta = - 200
    机器人:toYDelta = - 200/>

在动画:


 <规模
    机器人:时间=200
    机器人:fillAfter =假
    机器人:fromXScale =0.5
    机器人:fromYScale =0.5
    机器人:插值=@机器人:动画/ linear_interpolator
    机器人:pivotX =50%
    机器人:pivotY = - 90%
    机器人:toXScale =1.0
    机器人:toYScale =1.0/><翻译
    机器人:时间=300
    机器人:fromXDelta = - 200
    机器人:fromYDelta = - 200
    机器人:toXDelta =0
    机器人:toYDelta =0/>

和我的code:

  FragmentTransaction英尺= getFragmentManager()调用BeginTransaction()。
                ft.setCustomAnimations(R.anim.jump_in,R.anim.jump_out,R.anim.jump_in,R.anim.jump_out);
                ft.add(layer_frag,图层FRAG);
                ft.show(layer_frag).commit(); // layer_frag是加入WTO要求延伸DialogFragment一类

因为它似乎因为它出现之前,我可能失去了一些东西。


解决方案

  @覆盖
公共对话框onCreateDialog(捆绑savedInstanceState)
{
    最后对话的对话= super.onCreateDialog(savedInstanceState);
    dialog.getWindow()的getAttributes()windowAnimations = R.style.detailDialogAnimation。;
    返回对话框;
}

答案是从 stackoverflow.com/a/13537234/969325 但你必须设置样式为 onCreateDialog 功能。

How can I add animation to DialogFragment. My animations are:

out anim:

<scale
    android:duration="200"
    android:fillAfter="false"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:interpolator="@android:anim/linear_interpolator"
    android:pivotX="50%"
    android:pivotY="-90%"
    android:startOffset="200"
    android:toXScale="0.5"
    android:toYScale="0.5" />

<translate
    android:duration="300"
    android:fromXDelta="0"
    android:fromYDelta="0"
    android:toXDelta="-200"
    android:toYDelta="-200" />

in anim:

<scale
    android:duration="200"
    android:fillAfter="false"
    android:fromXScale="0.5"
    android:fromYScale="0.5"
    android:interpolator="@android:anim/linear_interpolator"
    android:pivotX="50%"
    android:pivotY="-90%"
    android:toXScale="1.0"
    android:toYScale="1.0" />

<translate
    android:duration="300"
    android:fromXDelta="-200"
    android:fromYDelta="-200"
    android:toXDelta="0"
    android:toYDelta="0" />

and my code:

FragmentTransaction ft = getFragmentManager().beginTransaction();
                ft.setCustomAnimations(R.anim.jump_in, R.anim.jump_out, R.anim.jump_in, R.anim.jump_out);
                ft.add(layer_frag, "layer frag");
                ft.show(layer_frag).commit();//layer_frag is a class whitch extends DialogFragment

I must miss something because it appears as it appears before.

解决方案

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) 
{
    final Dialog dialog = super.onCreateDialog(savedInstanceState);
    dialog.getWindow().getAttributes().windowAnimations = R.style.detailDialogAnimation;
    return dialog;
}

The answer was from stackoverflow.com/a/13537234/969325 but You have to set the style at onCreateDialog function.

这篇关于如何添加动画DialogFragment?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆