android中使得popupwindow消失

来源:互联网 发布:魔兽世界优化 编辑:程序博客网 时间:2024/05/22 06:50

当我们已经弹出popupwindow后,想让它单击窗体或者窗体外消失,或者按手机的返回键让其消失。

1、单击窗体view消失

view.setOnClickListener(new OnClickListener(){

    @Override

    public void onClick(View v) {

                  Log.i(TAG,view clicked");

    }

   pop.dismiss();

});

view是窗体中的一个控件,单击view,用dismiss可以将popupwindow消失掉!


2、单击窗体外消失

                   / / 创建PopupWindow对象  

        LayoutInflater inflater = LayoutInflater.from(this);  

        View view = inflater.inflate(R.layout.popmenu_location, null); // 引入窗口配置文件   

        pop = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, false);  

        ColorDrawable cd = new ColorDrawable(-0000);

        pop.setBackgroundDrawable(cd);//设置窗体的背景,这样窗体外单击触摸才会消失,但这不会影响xml文件中配置好的背景

        pop.setOutsideTouchable(true);//窗体外单击触摸消失

             pop.setFocusable(true);       //窗体获得焦点,否则无法点击  

 红色字体的不可少,因为android中认为有背景的,单击外部才会消失。

3、按手机的返回键让其消失

@Override//按手机的返回键,窗体消失
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && popisshow) {
pop.dismiss();
}
return super.onKeyDown(keyCode, event);
}

以上这些来自于网友lee0oo0博客的启发!希望对你们有帮助!



原创粉丝点击