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