1. 程式人生 > >PopupWindow動畫結束後dismiss崩潰解決

PopupWindow動畫結束後dismiss崩潰解決

在個別機型PopupWindow動畫結束後dismiss崩潰,日誌:

<pre name="code" class="plain">E/libEGL(28187): call to OpenGL ES API with no current context (logged once per thread)

可能是bug,導致onAnimationEnd在錯誤的執行緒執行或者狀態錯誤之類的,修改後問題解決:

public static PopupWindow showGainCoinPopup(Activity activity, View parent, int coinCount, final Runnable runnable){
		LayoutInflater li = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View v = li.inflate(R.layout.popupwindow_get_coin, null);
		TextView textGetCoin = (TextView) v.findViewById(R.id.textGetCoin);
		textGetCoin.setText("+" + coinCount + "金幣");

		final PopupWindow pw = new PopupWindow(v, LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
		pw.setBackgroundDrawable(new BitmapDrawable());
		pw.setOutsideTouchable(false);
		pw.setFocusable(false);
		//pw.setAnimationStyle(R.anim.popup_enter);

		TranslateAnimation ani = new TranslateAnimation(0, 0, 0, -150);
		ani.setDuration(700);
		ani.setAnimationListener(new AnimationListener() {
			
			@Override
			public void onAnimationStart(Animation animation) {
			}
			
			@Override
			public void onAnimationRepeat(Animation animation) {
			}
			
			@Override
			public void onAnimationEnd(Animation animation) {
				
				// 在有些手機中dismiss會崩潰
				new Handler().post(new Runnable() {
		            @Override
		            public void run() {
		            	if (runnable!=null){
							runnable.run();
						}
						pw.dismiss();
		            }
		        });
			}
		});
		pw.showAtLocation(parent, Gravity.CENTER, 0, 0);
		v.startAnimation(ani);
		return pw;
	}




相關推薦

PopupWindow動畫結束dismiss崩潰解決

在個別機型PopupWindow動畫結束後dismiss崩潰,日誌: <pre name="code" class="plain">E/libEGL(28187): call to OpenGL ES API with no current context (

TranslateAnimation動畫結束的位置問題(已解決

本帖最後由 hiliuyuan 於 2011-3-15 14:44 編輯 我正在做一個效果:拖動一個view使之移動,鬆開後view會移動到固定的位置。 問題出現了:每當view回到指定位置的動畫結束後,view都會回到起始位置,於是我設定了AnimationListener,在onAnimationEnd

animation動畫結束css樣式怎麼保留最後狀態

本文來源於 CSS animation動畫之animation-fill-mode特性 問題 css屬性animation動畫可以輕鬆地給頁面帶來很炫很酷的效果,但是有時候我們會遇到這個問題,動畫結束後css狀態會返回到初始狀態,那麼這並不是我們想要的,我們希望動畫結束後css

[Android UI介面] TranslateAnimation動畫結束的位置問題

我正在做一個效果:拖動一個view使之移動,鬆開後view會移動到固定的位置。 問題出現了:每當view回到指定位置的動畫結束後,view都會回到起始位置,於是我設定了AnimationListener,在onAnimationEnd裡調整了view的位置,但是在動畫

TranslateAnimation動畫結束位置閃爍問題

主要程式碼如下: float fromXDelta = context.length; TranslateAnimation translateAnimation =null;if (this.context.oldTabViewIndex < t

ios CABasicAnimation 動畫結束如何判斷是哪個動畫結束

ios  CABasicAnimation 動畫結束後如何判斷是哪個動畫結束了? 例如此三個動畫 [xxx.layer addAnimation:animation forKey:@"animationPosition"]; [xxx.layer addAnimation:

“開啟兩個相同程式,雙擊Lancher,Ubuntu崩潰解決方法

問題描述:在Ubuntu下,開啟了兩個相同的程式,這時候再點選Lancher上該程式的圖示時,桌面崩潰,回到了登入介面,重新登入後程序已被登出! 問題解決方法: 注意:在操作前請先儲存當前任務,因為按照一下設定後會重啟Unitiy! 1.開啟Unity Tweak

Unity3D開發之設定Animator播放動畫片段結束事件設定

最近專案需求做一個效果動畫,在unity自己編輯的關於Transfrom+Color Alpha變化的動畫。動畫編輯好後在Animator面板編輯動畫切換條件。初始狀態,動畫進入一個空狀態,當我們要展示效果的時候,就設定他的引數值Score=True,讓他切換動畫。切換完後再切回空狀態並設定Sc

vue2.0專案CSS3動畫打包動畫失效解決辦法

vue2.0 + webpack做專案時,css3動畫打包前正常,打包後失效,原因是: vue-cli腳手架package.json配置檔案裡面對瀏覽器的版本做了css的字首處理 "browsersli

解決ViewPager設定切換動畫PageTransformer子頁無法觸控的問題

通過ViewPager.setPageTransformer()方法可以設定切換動畫,但是如果ViewPager的子頁中要處理觸控事件,如瀏覽圖片時對圖片放大縮小,ViewPager切換子頁後,不能處理觸控事件,似乎子頁裡面的變的不可點選。嘗試了很多中Google上的方法,

MPMovieplayerviewcontroller播放結束自動消失的解決方案

你可以使用這段程式碼來阻止控制器播放在播放結束後自動dismissing(消失),並且捕捉到使用者點選完成的按鈕事件去自己定義並處理讓你的MPMoviePlayerViewController播放器的消失(dismiss)的時機 步驟 1. -

2014-10-31Android學習------序列幀動畫,開始,結束監聽的解決--------GIF動畫實現

寫一篇文章很辛苦啊!!! 轉載請註明,聯絡請郵件[email protected] 我學習Android都是結合原始碼去學習,這樣比較直觀,非常清楚的看清效果,覺得很好,今天的學習原始碼是網上找的個AnimationTest 原始碼 百度搜就知道很多下載的

對於兩個非同步任務結束回撥的解決方案

引入ReactiveCocoa,cocoaPods上有ReactiveCocoa這個類。這裡pod的安裝和install就不多說了。注意的是,如果install一直在等待,那就是被牆了,使用pod install --verbose --no-repo-update這條命令

Vs2017獲取Git空倉庫創建解決方案及項目無法推送,推送失敗的問題.

eve src 無法 技術 項目 http developer 方案 更改 與Git無關,因為遠程是空文件夾,導致沒有遠程版本做對應提示更改或怎樣,必須在創建人創建倉庫的時候上傳文件代碼. https://d

讓自定義函數在ajax結束執行

獲取 觸發 div setting 自定義函數 註冊 pre ack 什麽 在JQ中提供了兩個用來確定ajax是否結束的函數:ajaxStop()、ajaxSuccess()。 ajaxStop(),當所有AJAX結束的的時候,觸發:

電腦USB鍵盤鼠標無法使用,重裝系統 問題依舊 解決方案

使用 ati 開機 解決 hci 恢復 軟件 mode 裝系統 解決方案 1、開機進入BIOS; 2、Advanced選項--》USB Configuration--》XHCI Pre-Boot Mode 關閉; 3、F10保存退出,重啟 這種方法雖然能夠使USB恢復使用,

ReactNative環境搭建擴展篇——安裝報錯解決方案

每次 搖一搖 ack pst img 工程 項目 python2 -1 之前一篇寫了《邏輯性最強的React Native環境搭建與調試》說了RN的安裝,今天在這裏做一個復盤,讓我們能夠更直觀更深入的了解React Native(以下簡稱RN),這一篇重點來說的就是,安裝之

1.7 (git相關) .gitignore 添加無效的解決辦法

git rm blog log 清除 color 提交 追蹤 無效 文件 在工程中很容易出現.gitignore並沒有忽略掉我們已經添加的文件,那是因為.gitignore對已經追蹤(track)的文件是無效的,需要清除緩存,清除緩存後文件將以未追蹤的形式出現,這時重新添加

Android Studio中導入Eclipse項目亂碼的解決方法

亂碼 load 發現 安卓項目 reload gbk 技術分享 出現 單擊   很多人用的eclipse寫安卓項目入門,後來轉入Android studio。發現之前寫的好多eclipse項目導入android studio後會出現亂碼的錯誤,特別是一些中文。   這是因為

css3動畫結束捕捉事件整理

nsf animation logs bili property div lis mat ren //捕捉webkitAnimationEnd事件 element.addEventListener(‘webkitAnimationEnd‘, end, false); /