我有一个具有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) {
}
});
我希望它能帮助你。