android popuwindow 简单运用

// 昵称修改 弹出框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();
}
}
};
posted @ 2017-05-19 11:15  风如故  阅读(1271)  评论(0编辑  收藏  举报