android中使得popupwindow消失

本文介绍了在Android应用中如何控制PopupWindow的行为,包括通过点击窗体内的控件、点击窗体外部区域以及按下手机返回键来关闭PopupWindow的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们已经弹出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博客的启发!希望对你们有帮助!



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值