1.在activity中 设置一个方法,传入pop
private CompareThemePop compareThemePop; public void setComparePop(CompareThemePop pop){ this.compareThemePop = pop; } 2.在activity中 重写dispatchTouchEvent方法,消费点击事件 @Override public boolean dispatchTouchEvent(MotionEvent ev) { if(compareThemePop != null && compareThemePop.isShowing()){ return false; } return super.dispatchTouchEvent(ev); }
3.在fragemnt中点击按钮,弹出pop的方法中,设置pop对象给activity
case R.id.tv_fg_home_compare: //弹出选择对比列表的框 if (compareThemePop != null) { compareThemePop = null; } compareThemePop = new CompareThemePop(mContext); compareThemePop.showAtLocation(vpFgHomeMap, Gravity.CENTER, 0, 0); //为了让pop弹出来点击外部不消失且不会穿透下部,把pop传递给activity的dispatchTouchEvent事件去消费点击事件 ((HomeActivity)mContext).setComparePop(compareThemePop); break;