我有一个自定义对话框,必须从屏幕底部向上滑动,然后在解除时再次向下滑动。 (类似于软键盘的工作方式)。 自定义对话框包含一些要填写的文本字段。
我已经使用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"
就像我说的那样,当你第一次显示对话框时它才能正常工作,只有在你使用键盘后,退出动画才会改变。
谢谢!
答案 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%" />