Android打开Dialog动画监听器

时间:2016-07-19 09:24:00

标签: android android-animation android-dialog

我有一个具有EditText的Dialog。此对话框已输入并存在在style.xml中定义的动画

<style name="LocationDialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowAnimationStyle">@style/LocationDialogAnimation</item>
        <item name="android:windowBackground">@android:color/transparent</item>
    </style>

    <style name="LocationDialogAnimation">
        <item name="android:windowEnterAnimation">@anim/dialog_location_enter_anim</item>
        <item name="android:windowExitAnimation">@anim/dialog_location_exit_anim</item>
    </style>

我想在输入动画完成后打开键盘导致我当前的解决方案

locationDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

重叠动画,不等待动画首先完成。

我也试过

locationDialog.setOnShowListener(...);

1 个答案:

答案 0 :(得分:1)

在代码中使用动画可以实现您的目标。你可以先在xml或代码中将EditText的焦点设置为android:focusable =“false”,当你输入动画结束时,你可以将requestFocus设置为true。

Animation enter= AnimationUtils.loadAnimation(context,R.anim.enter_anim);
enter.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {
        }

        @Override
        public void onAnimationEnd(Animation animation) {
          yourEditText.setFocusable(true);
          yourEditText.requestFocus();
        }

        @Override
        public void onAnimationRepeat(Animation animation) {

        }
    });

我希望它会对你有所帮助。