结合popwindow与gridview的一例

项目中需要实现一个gridview 点击某项弹出一个popupwindow 最蛋疼的是一个突出的尖角指定点击的哪一项


然后还需要判断底部空间是否足够显示弹出的popupwindow 

这个功能点 我遇到了两个问题

第一个就是尖角的定位了 在一个地方困住了好久 

点击某一个item 这时候getTop的值实际是到parentView的距离 这里我漏掉了顶部状态栏的大小 在不同手机上测试 效果始终不理想。

首先是获取状态类高度

Rect frame = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
return frame.top;

 这个方法在oncreate中只会返回0 因为这时候实际上还没有开始页面的绘画 所以我放在了点击监听器中。

如此在监听器中弹出popupwindow就可以比较精确的定位了

 第二个算是小问题

  怎么在popupwindow弹出的情况下 点击外部区域自动关闭 以为很复杂 结果就是3行代码

popWin = new PopupWindow(popview, dm.widthPixels, 106);//没有设置为focusable
popWin.setBackgroundDrawable(new BitmapDrawable());//不明
popWin.setOutsideTouchable(true);

猜你喜欢

转载自wiseideal.iteye.com/blog/1830110