Android中的PopupWindow点击外侧区域取消

android中的PopupWindow是比较常用的控件,但是一些用户习惯的特性却没有成为PopupWindow的默认行为,需要手动去设置,比如点击外侧区域来将PopupWindow给dismiss掉.

网上有很多例子提供了解决办法,比较常见的是这样的:


PopupWindow pop = new PopupWindow(contentView, width, height);
	pop.setFocusable(true);
	pop.setOutsideTouchable(true);
	pop.setBackgroundDrawable(new BitmapDrawable());
	pop.showAtLocation(findViewById(R.id.parent), Gravity.CENTER, 0, 0);

这个方法可以解决点击取消的问题,不过有一点隐患,就是 BitmapDrawable的无参构造函数被deprecated了,在未来的版本中有失效的危险,可以用以下的方案来代替:


PopupWindow pop = new PopupWindow(contentView, screenWidth, screenHeight);
	Bitmap background = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
	pop.setBackgroundDrawable(new BitmapDrawable(getResources(), background));
	pop.setFocusable(true);
	pop.setOutsideTouchable(true);
	pop.showAtLocation(findViewById(R.id.parent), Gravity.CENTER, 0, 0);


阅读更多
个人分类: android开发
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Android中的PopupWindow点击外侧区域取消

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭