2个回答
展开全部
View popupWindow_view = getLayoutInflater().inflate(R.layout.detailinfo, null,false);
popupWindow = new PopupWindow(popupWindow_view, 300, 200, true);
popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(false);
popupWindow.showAtLocation(findViewById(R.id.Detail), Gravity.CENTER, 0, 0);
这个popupwindow的实现方法大家可以上网上找,很多实例我就不详细说了,大概就是上面这几行代码,其他的按钮什么的用
popupWindow.findviewbyid()就能获取到,进行onclick事件就行,这里面主要有用的是
popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(false);这两行,当你吧这两行写上之后,你会发现后面的界面你也是可以点击的,而不是像alertdialog那样将后面的pause了,然后再修改onTouchEvent方法
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
if (popupWindow != null && popupWindow.isShowing()) {
popupWindow.dismiss();
}
return super.onTouchEvent(event);
}
其实还有另一种方法:popwindow设为全屏那么大,然后原来想要的弹窗在布局里面加一个框框摆到合适的位置来实现,最后根布局实例化,设置点击事件dissmis。
根布局可以设一个黑色半透明的颜色来凸显框框的效果。
popupWindow = new PopupWindow(popupWindow_view, 300, 200, true);
popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(false);
popupWindow.showAtLocation(findViewById(R.id.Detail), Gravity.CENTER, 0, 0);
这个popupwindow的实现方法大家可以上网上找,很多实例我就不详细说了,大概就是上面这几行代码,其他的按钮什么的用
popupWindow.findviewbyid()就能获取到,进行onclick事件就行,这里面主要有用的是
popupWindow.setOutsideTouchable(true);
popupWindow.setFocusable(false);这两行,当你吧这两行写上之后,你会发现后面的界面你也是可以点击的,而不是像alertdialog那样将后面的pause了,然后再修改onTouchEvent方法
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
if (popupWindow != null && popupWindow.isShowing()) {
popupWindow.dismiss();
}
return super.onTouchEvent(event);
}
其实还有另一种方法:popwindow设为全屏那么大,然后原来想要的弹窗在布局里面加一个框框摆到合适的位置来实现,最后根布局实例化,设置点击事件dissmis。
根布局可以设一个黑色半透明的颜色来凸显框框的效果。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询