android开发过程中出现的Popwindow问题
2015-04-17 14:37
337 查看
<p>源代码如下:</p><div> </div>
if (popupWindow != null && popupWindow.isShowing()) { popupWindow.dismiss(); return ; } else { showPopWindow() ; popupWindow.setOutsideTouchable(true); //popupWindow.update() ; } private void showPopWindow() { popupWindow = new PopupWindow(getContext()); popupWindow.setContentView(quick_lv); // 设置popupWindow的宽高 popupWindow.setWidth(lin_loginfast.getWidth()); popupWindow.setHeight(200); popupWindow.setBackgroundDrawable(getContext().getResources().getDrawable(R.drawable.background_popwindow)); popupWindow.showAsDropDown(lin_loginfast, 0, 0); // 设置点击其他位置popupWindow消失 }看我的代码可以知道我的目的其实就是单纯的想让popwindow在特定的条件下消失和显示而已,但是出现的状况是有的,
首先在关于popwindow.update()的状况:当不添加这个的时候在外面点击popwindow外消失的效果不能实现,添加的时候呢,点击按钮之后popwindow总是出现,消失不了,现在记住,我会在处理之后在后面添加解决方法.
我现在找到原因了 ,我们一般情况下判断popwindow的消失与否一般情况下是这样的:
if(popwindow !=null){//当popwindow不显示的时候一般情况下的popwindow是等于null的,而我刚才看了 在上面的代码之中很长时间的popwindow在消失之后还是不为空的。这是怎么回事呢?我们暂且不去管他只要直接在他的显示和消失的时候做个boolean类型的数据 flag就可以了。
但是这个时候问题又来了,这个时候点击popwindow外部区域popwindow不能消失了,这个怎么回事呢?
这个时候我们可以看到,因为我们的flag代替了popwindow !=null成为了判断条件,这个时候的popupWindow.setOutsideTouchable(true);
不能实现,这个时候需要做的是
在popupWindow.setOutsideTouchable(true); 下面添加以下的代码:
popupWindow.setFocusable(true) ; popupWindow.setTouchable(true) ; popupWindow.setTouchInterceptor(new OnTouchListener() { @Override public boolean onTouch(View arg0, MotionEvent arg1) { // TODO 自动生成的方法存根 popupWindow.dismiss() ; return true; } }) ;这个时候再点击就可以实现了。
至此,问题解决!
}
相关文章推荐
- Android开发,关于php服务器文件传输过程出现的问题:中文名文件名在url中的转换
- Android基础--android studio开发过程中setId(1);出现错误问题
- Android开发过程中so调用出现的常见问题分析
- popwindow实际开发使用中出现的问题(三)
- popwindow实际开发使用中出现的问题(四)
- android开发环境安装(Eclipse)出现的几个问题
- Android —— 开发出现的问题小结
- Android 蓝牙4.0BLE开发出现的问题
- 开发工具问题笔记-运行android工程时出现Unsupported major.minor version 52.0错误
- 关于android 开发过程中遇到的问题,不定期更新
- Android开发过程中遇到的问题(长期补充)
- android开发问题-关于Xutils框架出现无法访问HttpRequestBase 找不到org.apache.http.client.methods.HttpRequestBase解决方案
- react native开发过程中,运行android程序屏幕没有任何显示问题
- 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题1---cvNamedWindow调用报错的问题
- Android系统驱动开发琐碎——解决spidev读写过程没有时钟信号的问题
- 对于Android开发中Eclipse出现的“heap space”的问题
- Android开发过程问题汇总与记录
- 在开发Android项目过程中遇到的常见问题整合
- 安卓开发之Android studio安卓过程出现的问题及解决方法
- Android开发用Service+Broadcast解决倒计时过程中Activity被销毁的问题