使用软键盘后,windowExitAnimation会发生变化

时间:2013-07-15 21:02:16

标签: android animation dialog alertdialog

我有一个自定义对话框,必须从屏幕底部向上滑动,然后在解除时再次向下滑动。 (类似于软键盘的工作方式)。 自定义对话框包含一些要填写的文本字段。

我已经使用windowEnter和windowExit动画指定了我的自定义对话框样式。 首次创建对话框时,它会正确地上下滑动。当你解雇它时,它会像它应该向下滑回。 但是在填写其中一个字段并关闭键盘后,解散动画就会搞砸。它向上滑动并消失,而不是像它应该滑下来。 因此,以某种方式打开和关闭键盘的行为会导致windowExitAnimation混乱。

这是我的代码:

slide_up.xml(输入动画):

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromYDelta="100%p" android:toYDelta="0%p"
    android:duration="@android:integer/config_longAnimTime"/>

slide_down.xml(退出动画):

<?xml version="1.0" encoding="utf-8"?>
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromYDelta="0%p"
    android:toYDelta="100%p" />

styles.xml:

<style name="DialogAnimation">
        <item name="android:windowEnterAnimation">@anim/slide_up</item>
        <item name="android:windowExitAnimation">@anim/slide_down</item>
    </style>

    <style name="DialogSlideTheme" parent="@android:style/Theme.Dialog">
        <item name="android:windowAnimationStyle">@style/DialogAnimation</item>
    </style>

在活动的清单中,我已将软输入模式设置为adjustNothing(因为我认为键盘可能导致重新计算布局,因此动画会被抛弃):

android:windowSoftInputMode="adjustNothing"

就像我说的那样,当你第一次显示对话框时它才能正常工作,只有在你使用键盘后,退出动画才会改变。

谢谢!

1 个答案:

答案 0 :(得分:0)

将slide_down.xml文件更改为以下内容:

<?xml version="1.0" encoding="utf-8"?>
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromYDelta="0%"
    android:toYDelta="100%" />