2016-07-27 55 views
1

我想在解除它之前在彈出窗口內部激活視圖。所以我有動畫像下面的駁回監聽器裏看,如何在關閉android窗口中彈出窗口之前在popupwindow中創建視圖?

penPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() { 
      @Override 
      public void onDismiss() { 

       new Handler().postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         TranslateAnimation animateSlideUp = new TranslateAnimation(0,0,0, mImageViewLike.getHeight()); 
         animateSlideUp.setDuration(200); 
         animateSlideUp.setFillAfter(true); 
         mImageViewLike.startAnimation(animateSlideUp); 
         mImageViewLike.setVisibility(View.VISIBLE); 
        } 
       }, 200); 

      } 
     }); 

但關閉彈出窗口並關閉setOnDismissListener彈出窗口前,不叫在此之前將無法運行動畫彈出窗口中的ImageView的。在關閉popupwindow窗口之前,您能否給我建議做一些操作?提前致謝。

+0

爲什麼你把200延遲? – Nisarg

+1

動畫必須延遲一段時間才能開始。但在我的情況下,控制不進入setOnDismissListener @ Nisarg – Sangeetha

+0

@Sangeetha你是否解僱他們的任何點擊? –

回答

1

這是你應該怎麼做的,

1)創建兩個不同的動畫組。

說,popup_show.xmlpopup_hide.xml並將其添加到您必須在res文件夾內創建的動畫文件夾。

2)現在的內部值文件夾中創建一個名爲styles.xml xml和這些動畫添加到像這樣,

<style name="Animation"> 
    <item name="android:windowEnterAnimation">@anim/popup_show</item> 
    <item name="android:windowExitAnimation">@anim/popup_hide</item> 
</style> 

3)現在設置這種風格你PopupWindow動畫,

popup.setAnimationStyle(R.style.Animation); 

現在它會自動檢測窗口進入和退出並提供所需的動畫。

+0

感謝您的回覆。我需要爲放置在彈出窗口內的圖像設置動畫。我不想動畫我的彈出窗口。但在我的情況下,關閉彈出窗口時關閉偵聽器不會被調用。你能給我一個建議嗎?爲什麼解僱聽衆沒有發現? @ shridutt kothari – Sangeetha

+0

PopupWindow.OnDismissListener在彈出窗口關閉後想要做某些事情時非常有用,因此當您嘗試在PopupWindow.OnDismiss之後爲其中的某個圖像創建動畫時,它不會像當時的彈出窗口一樣工作。 –

+0

好的。我怎樣才能關閉彈出窗口之前做一些動畫。有什麼辦法可以實現它嗎? @ shridutt kothari – Sangeetha

2

如果你開始動畫on popup dismiss那麼你在哪裏做動畫?

你應該以相反的方式做到這一點。

啓動animationanimation end然後dismissdialog.

 TranslateAnimation animateSlideUp = new TranslateAnimation(0,0,0, mImageViewLike.getHeight()); 
     animateSlideUp.setDuration(200); 
     animateSlideUp.setFillAfter(true); 
     mImageViewLike.startAnimation(animateSlideUp); 
     animateSlideUp.setAnimationListener(new Animation.AnimationListener() { 
      @Override 
      public void onAnimationStart(Animation animation) { 

      } 

      @Override 
      public void onAnimationEnd(Animation animation) { 
       penPopupWindow.dismiss(); 
      } 

      @Override 
      public void onAnimationRepeat(Animation animation) { 

      } 
     }); 
+0

感謝您的建議。我將在我的代碼中添加動畫偵聽器。我不想在動畫結束後關閉彈出窗口。我需要在關閉彈出窗口之前爲視圖設置動畫效果。@ Sohail Zahid – Sangeetha

+0

@Sangeetha您可以根據需要評論代碼。 –

+0

@Sangeetha如果帖子幫助請打勾並投票up.happy編碼 –

相關問題