动画的AlertDialog的入口和出口(Animate an AlertDialog's

2019-09-21 10:08发布

我在滑动AlertDialog当它进入和滑出时,它被驳回,但它不是动画。

那么,如何让动画工作?

这里是我有什么,

public class SlideDialogFragment extends DialogFragment {
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
              return  new AlertDialog.Builder(new ContextThemeWrapper(getActivity(),R.style.SlidingDialog))
                      .setTitle("Sliding dialog")
                      .create()
     }

的themes.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <style name="SlidingDialog" parent="@android:style/Theme.DeviceDefault.Dialog">
        <item name="android:windowAnimationStyle">@style/SlidingDialogAnimation</item>
    </style>
    <style name="SlidingDialogAnimation">
        <item name="android:windowEnterAnimation">@android:anim/slide_in_left</item>
        <item name="android:windowExitAnimation">@android:anim/slide_out_right</item>
    </style>
</resources>

我已经提到了太多资源,似乎没有要做到这一点,对我的作品的单一适当的方式,可能是我失去了一些东西

我在用

  • 安卓ICS
  • 应用程序是专为API 15+

这里有一些相关的资源,我无法从得到的答案

  • 动画上解雇的对话片段
  • https://groups.google.com/d/msg/android-developers/0oCWqQC4Pww/CmUM7iNHUggJ
  • https://groups.google.com/d/msg/android-developers/a2pUV0Sigf4/WiJNg_vMQWwJ
  • https://stackoverflow.com/a/3870997/492561

Answer 1:

下面是使用从上述基准和代码工作码。

// Declare a Builder.
AlertDialog.Builder builder = new AlertDialog.Builder(context);

// You can even inflate a layout to the AlertDialog.Builder, if looking for to create a custom one.
// Add and fill all required builder methods, as per your need.


// Now create object of AlertDialog from the Builder.
final AlertDialog dialog = builder.create();

// Let's start with animation work. We just need to create a style and use it here as follow.
if (dialog.getWindow() != null)
    dialog.getWindow().getAttributes().windowAnimations = R.style.SlidingDialogAnimation;

dialog.show();

至于风格,我用同样的风格有关使用(在styles.xml)。

<style name="SlidingDialogAnimation">
        <item name="android:windowEnterAnimation">@android:anim/slide_in_left</item>
        <item name="android:windowExitAnimation">@android:anim/slide_out_right</item>
</style>

但是你可以通过将动画XML文件在res /动画文件夹中使用任何其他自定义文件。

...

注: - 如果是一个SO用户,你是在反对投票没有实施或测试它的答案只是有趣,我为你感到难过。 有关它的任何疑问或进一步的帮助,只是给我留下一个评论如下。

谢谢。



文章来源: Animate an AlertDialog's entrance and exit