`
king_tt
  • 浏览: 2109541 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

解决popupWindow 的android.view.WindowManager$BadTokenException问题

阅读更多

PopupWindow 写在事件监听里面是不会出现这个异常的,当你不写在事件监听里面,希望Activity被创建就弹出Popupwindow,最典型应该就是视频的播放吧,如图,我觉得再多的文字也当不了图形形象,上面那一排就是一个popupWindow

这时候如果你在onCreate就会出现WindowManager$BadTokenException异常,pupupWindow需要Activity获取到了焦点才能显示出来,也许你会想在onResume()方法让PopupWindow显示,因为onResume()是Activity获取到了焦点回调的方法,事实上我也这么想过,但还是行不通,onResume()是刚开始获得焦点就调用这个方法,先执行完了onResume(),之后在执行onWindowFocusChanged()

 

   //the activity has Focus show popupwindow,else throws android.view.WindowManager$BadTokenException
	@Override
	public void onWindowFocusChanged(boolean hasFocus) {
		// TODO Auto-generated method stub
		super.onWindowFocusChanged(hasFocus);
		////有焦点的时候,让你的PopupWindow显示出来
		if(hasFocus){
			playerPopup.showAtLocation(mView, Gravity.TOP|Gravity.FILL, 0, 0);
		}
	}



 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics