問題原因:
當popwindow調用時,其依附的parentview(下面函數的第一個參數)還沒渲染創建完成,即parentview所在的activity沒有完成。
jumpWidnow.showAtLocation( view, Gravity.BOTTOM, 0, 0 );解決方法:
1,當activity添加到window完成后,再調用popwindow:
public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); Log.d("liudezu","====="+this.getClass().getName()+":onWindowFocusChanged"); if(hasFocus){ //showPopupJumpWindow(); }}onWindowFocusChanged(),當window焦點變換后調,當hasFocus = true時,表示獲得焦點,即activity渲染完成,window獲得焦點。2,當popwindow附在的parentview,渲染完成后,再調用popwindow:
viewPager.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { // do something showPopupJumpWindow(); viewPager.getViewTreeObserver().removeOnGlobalLayoutListener(this); }});當view渲染完成后,調用onGlobalLayout回調接口。在這里調用。
新聞熱點
疑難解答