最近自己在做一个项目是需要弹出信息框, 我使用的是popupwindow,我之前设置的有这个:
m_pop_GameMatchWaitTip.setBackgroundDrawable(new PaintDrawable());
m_pop_GameMatchWaitTip.setOutsideTouchable(true);
就是支持框体外点击获取焦点关闭,但是用户使用效果不佳,现在要改为信息提示框不可以点击屏幕关闭,要按keyback键关闭,经过自己的一番研究,如下方法可以实现解决这个问题:
就是在这个popupwindow.xml配置文件里面加上一个无关的view或者没有点击的需要的view即可,我设置如下:
this.m_txt_Match_Name.setFocusableInTouchMode(true);
this.m_txt_Match_Name.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK)
{
if (m_pop_GameMatchWaitTip != null)
{
m_pop_GameMatchWaitTip.dismiss();
}
return true;
}
return false;
}
});
这样就可以通过监听这个view,从而关闭这个popupwindow。
希望自己可以帮助到其他需要这个问题的朋友,有问题可以大家一起交流。
时间: 2024-10-10 03:43:20