AndroidView之PopupWindow
AndroidView之PopupWindow
因为项目中有很多地方都需要使用PopupWindow,所以特别查了一下,做了一个简单的总结,过两天就加到项目中去。
PopupWindow
PopupWindow,顾名思义,就是一个用来显示弹窗的组件。
创建步骤
1 | PopupWindow window = new PopupWindow(View contentView, int width, int height, boolean focusable); |
这个方法有四个参数,第一个参数是用于PopupWindow中的View,第二个参数是PopupWindow的宽度,第三个参数是PopupWindow的高度,第四个参数指定PopupWindow能否获得焦点。
示例代码
1 | View contentView = LayoutInflater.from(MainActivity.this).inflate(R.layout.popuplayout, null); |
基本方法
- window.setBackgroundDrawable(Drawable background); 设置PopupWindow的背景
- window.setOutsideTouchable(boolean touchable); 设置PopupWindow是否能响应外部点击事件
- window.setTouchable(boolean touchable); 设置PopupWindow是否能响应点击事件
只有同时设置PopupWindow的背景和可以响应外部点击事件,它才能“真正”响应外部点击事件。
显示PopupWindow
- window.showAtLocation(View parent, int gravity, int x, int y); 第一个参数是PopupWindow的父View,第二个参数是PopupWindow相对父View的位置,第三和第四个参数分别是PopupWindow相对父View的x、y偏移
- window.showAsDropDown(View anchor, int xoff, int yoff, int gravity); 第一个参数是PopupWindow的锚点,第二和第三个参数分别是PopupWindow相对锚点的x、y偏移
为PopupWindow添加动画
- 进入时动画:(context_menu_enter.xml)
1 | <?xml version="1.0" encoding="utf-8"?> |
- 退出时动画:(context_menu_exit.xml)
1 | <?xml version="1.0" encoding="utf-8"?> |
- 生成style
1 | <style name="contextMenuAnim" parent="@android:style/Animation.Activity"> |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小柯基!