浅谈PopupWindow
来源:互联网 发布:ant 构建java web项目 编辑:程序博客网 时间:2024/05/24 01:01
首先要了解PopupWindow是什么:PopupWindow要和AlertDialog类似的一个弹窗效果
其次既然和AlertDialog类似那么PopupWindow和AlertDialog有什么区别?
AlertDialog是固定位置显示的,而PopupWindow是随意显示的
AlertDialog是非线程阻塞的,而PopupWindow是线程阻塞的
然后PopupWindow的显示方式:
在父控件的正下方:PopupWindow.showAsDropDown(View v);
相对父控件有偏移:PopupWindow.showAsDropDown(View v,int x,int y);
设置父控件相对位置,可设置有无偏移:PopupWindow.showAsDropDown(View v,int gravity ,int x,int y);(gravity可设置为Gravity.CENTER);
以及自定义生成PopupWindow;
PopupWindow实例:
声明:PopupWindow mPopupWindow;
创建点击监听事件,这个我就不说了吧;
监听执行事件:
getInstents();
判断当前对话框是否存在,如果存在者清除对话框,如果不存在则生成新的对话框:
深入PopupWindow将在接下来的博客中表述,自定义PopupWindow也将在后续文章中补充
附:Demo[http://pan.baidu.com/s/1qXKauQC]
其次既然和AlertDialog类似那么PopupWindow和AlertDialog有什么区别?
AlertDialog是固定位置显示的,而PopupWindow是随意显示的
AlertDialog是非线程阻塞的,而PopupWindow是线程阻塞的
然后PopupWindow的显示方式:
在父控件的正下方:PopupWindow.showAsDropDown(View v);
相对父控件有偏移:PopupWindow.showAsDropDown(View v,int x,int y);
设置父控件相对位置,可设置有无偏移:PopupWindow.showAsDropDown(View v,int gravity ,int x,int y);(gravity可设置为Gravity.CENTER);
以及自定义生成PopupWindow;
PopupWindow实例:
声明:PopupWindow mPopupWindow;
创建点击监听事件,这个我就不说了吧;
监听执行事件:
getInstents();
mPopupWindow.showAsDropDown(v); (显示PopupWindow对话框)
判断当前对话框是否存在,如果存在者清除对话框,如果不存在则生成新的对话框:
public void getInstents(){
if(null!=mPopupWindow){
mPopupWindow.dismiss();
return;
}else{
initPopup();
}
}
创建PopupView的布局样式,什么样的都可以;
初始化PopupWindow:
到这里,简单的PopupWindow已经可以生成。这里生成的是简易的PopupWindow,主要用于认识PopupWindow。创建PopupView的布局样式,什么样的都可以;
初始化PopupWindow:
public void initPopup(){
LayoutInflater layoutInflater=LayoutInflater.from(this);
View popupView=layoutInflater.inflate(R.layout.ae, null);
mPopupWindow=new PopupWindow(popupView, WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT);
设置SelectPicPopupWindow弹出窗体可点击
mPopupWindow.setFocusable(true);
mPopupWindow.setOutsideTouchable(true);
实例化一个ColorDrawable颜色为半透明
ColorDrawable dw = new ColorDrawable(0000000000);
点back键和其他地方使其消失,设置了这个才能触发OnDismisslistener ,设置其他控件变化等操作
mPopupWindow.setBackgroundDrawable(dw);
} 深入PopupWindow将在接下来的博客中表述,自定义PopupWindow也将在后续文章中补充
附:Demo[http://pan.baidu.com/s/1qXKauQC]
0 0
- 浅谈PopupWindow
- 浅谈PopupWindow
- 浅谈PopupWindow的使用
- 浅谈android之popupWindow用法
- 浅谈PopupWindow在Android开发中的使用
- 浅谈 PopupWindow 在 Android 开发中的使用
- popupwindow
- popupWindow
- PopupWindow
- PopupWindow
- PopupWindow
- PopupWindow
- PopupWindow
- popupwindow
- PopupWindow
- PopupWindow
- PopupWindow
- PopupWindow
- canvas 修改光标形状 滑过事件 点击事件
- 微信支付 v3版 java
- 魅族手机HOLD的解决方案
- 单片机MSP430 - MSP430+CC1101常用自带函数
- JSON简介
- 浅谈PopupWindow
- HDFS介绍
- Spark的spark.sql.warehouse.dir问题
- laravel 5.0 artisan 命令列表(中文简体)
- asp.net生命周期
- Java enum的用法
- JavaScript 中addEvent事件参数详解
- leetcode: string hard系列一:word search
- oracle if 语句的使用