2016-07-19 2 views
2

私はEditTextを持つダイアログを持っています。このダイアログには、入力しAndroidを開くダイアログアニメーションリスナー

<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); 

原因終了と入力し、キーボードを開きたいstyle.xmlで定義されていて、待たないアニメーションが存在していますアニメーションが最初に終了します。

また、私は何がしたいことは、コードでアニメーションを使用することによって可能にすることができ

locationDialog.setOnShowListener(...); 

答えて

1

を試してみました。 EditTextのフォーカスをxmlやコードで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) { 

     } 
    }); 

私はあなたに役立つことを願っています。

関連する問題