Android打开对话框动画侦听器



我有一个具有EditText的对话框。该对话框已输入并存在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(...);

通过在代码中使用Animation,可以实现您想要的内容。您可以首先在xml或代码中将EditText的焦点设置为android:focuable="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) {
        }
    });

我希望它能帮助你。

最新更新