// 昵称修改 弹出框popuwindow
private void showNickPopuWindow(View view){
    if (nickWindow==null){
        View layout=LayoutInflater.from(this.getContext()).inflate(R.layout.activity_modify_nick,null);
        etNick= (EditText) layout.findViewById(R.id.modify_nick_et);
        etNick.clearFocus();
        tvNick= (TextView) layout.findViewById(R.id.modify_nick_now_nick);
       //需要点击等监听,最好是自己new OnClickListener,直接用this有时候会监听不到
        layout.findViewById(R.id.modify_nick_sure).setOnClickListener(new View.OnClickListener() { 
            @Override
            public void onClick(View view) {
              
                }
            }
        });
        nickWindow=new PopupWindow(layout,ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
        nickWindow.setOnDismissListener(nickDIsmissListener);
        // 可聚焦
        nickWindow.setFocusable(true);
        // 外部可点击
        nickWindow.setOutsideTouchable(true);
        nickWindow.update();
        // 点击返回键隐藏(需要给PopuWindow设置背景)
        nickWindow.setBackgroundDrawable(new ColorDrawable(0xffffffff));
    }
nickWindow.showAsDropDown(view);  //显示位置设置在view这个控件下面
 //nickWindow.showAtLocation(view, Gravity.CENTER,0,0);
//第一个参数表示popuwindow要依赖的控件view,
//第二个参数popuwindow在view这个控件的方向(上、下、左、右、中心等)
//,第三、四个参数表示popuwindow向左、向上偏移的像素大小  
}
private PopupWindow.OnDismissListener nickDIsmissListener=new PopupWindow.OnDismissListener() { //poupuwindow 隐藏(消失)监听
    @Override
    public void onDismiss() {
        if (dialog!=null&&dialog.isShowing()){
            dialog.dismiss();
        }
    }
};