Android UI设计:PopupWindow
2015-08-28 22:35
495 查看
PopupWindow
PopupWindow也是一个对话框,它与Dialog相似,不同的是它可以设置弹出的对话框的位置、大小,也可以通过它弹出动画等。[code]//创建PopupWindow对象 popup=new PopupWindow(MainActivity.this); //获得布局的view View popview=getLayoutInflater().inflate(R.layout.popup_layput, null); //设置对话框的宽度、高度 popup.setWidth(ViewGroup.LayoutParams.MATCH_PARENT); popup.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); popup.setContentView(popview);//设置界面 //此时PopuWindow不能获得焦点,不能点击外面消失 popup.setFocusable(false); //设置外部可点击,使对话框dismiss() popup.setOutsideTouchable(true); //设置显示位置,在按钮2的下方显示 popup.showAsDropDown(mbtn2);
补充说明:
1、setFocusable具体说明
当有setFocusable(false)的时候,说明PopuWindow不能获得焦点,即使设置设置了背景不为空也不能点击外面消失,只能由dismiss()消失,但是外面的View的事件还是可以触发,back键也可以顺利dismiss掉。当设置为popuWindow.setFocusable(true);的时候,加上背景设置,点击外面和Back键才会消失。
2、设置进场动画:
[code]popup.setAnimationStyle(R.style.AnimationPreview);//设置动画样式
3、设置back键使PopupWindow结束
[code] public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ if(popup!=null&&popup.isShowing()){ popup.dismiss();//结束当前PopupWindow } } return true;//返回true使该事件得到响应 }
相关文章推荐
- MongoVUE对json数据的导入和导出
- Unable to run Vmware workstation 11 - failed to build vmnet
- [leetcode-187]Repeated DNA Sequences(java)
- easyui-editing datagrid 批量保存数据 二
- 野人学Android基础篇之初探UI控件第五课--RadioGroup
- 从客户端中检测到有潜在危险的 Request.Form 值
- easyui-editing datagrid 批量保存数据 一
- Android UI设计:DatePickerDialog与TimePickerDialog
- 【APUE】Chapter12 Thread Control
- UIAlertController
- 黑马程序员——31,GUI图形用户界面
- iOS UIImagePickerController拍照与摄像
- [LeetCode] 232 - Implement Queue using Stacks
- iPhone开发之UIScrollView滚动组件的使用(六)通过代理实现手势缩放——(拖线实现)
- UIBarButtonItem的分类 (快速返回一个显示图片的UIBarButtonItem)
- iOS 9: UIStackView入门
- iOS中UIButton控件的用法及部分参数解释
- 分类算法--贝叶斯分类法(Maprdecue实现)
- UIActivityIndicatorView
- UIAlertView