标签:android api popuwindow
此文上半部分为本人翻译API文档,下半部分转自网友分享资料。
继承树:
java.lang.Object
? android.widget.PopupWindow
概述:
popupWindow,顾名思义,用作在当前Activity前弹出一个界面,这个界面可以用来展示任何类型的View。
公共的构造器:
PopupWindow()
PopupWindow(Context context)
PopupWindow(Context context, AttributeSet attrs)
PopupWindow(Context context, AttributeSet attrs, int defStyle)
PopupWindow(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
//以上几种构造方法都是创建一个空的、没有获取焦点的、长宽尺寸均为0的popup window。
//(使用较少)
PopupWindow(View contentView, int width, int height)
//创建一个没有获取焦点、长为width、宽为height,内容为contentView的popup window.
PopupWindow(View contentView, int width, int height, boolean focusable)
//类似上面那个,但第四个参数可以控制是否获取焦点
//(这2种使用较多)!!!!
void dismiss()
//使popup window消失
int getAnimationStyle()
//返回该popup window出现或消失的动画类型,返回值为整型
Drawable getBackground()
//返回popup window的背景,返回值为Drawable类型
void setContentView(View contentView)
//设置该popup window显示的内容
View getContentView()
//返回popup window展示的内容,返回值为一个View
int getHeight()
//返回该popup window的高度值,返回值为int型
void setFocusable(boolean focusable)
//设置该popup window是否获得焦点
void setInputMethodMode(int mode)
/*设置输入法的模式,参数为这三个:INPUT_METHOD_FROM_FOCUSABLE(根据是否可以获得焦点决定), INPUT_METHOD_NEEDED(允许输入法), or INPUT_METHOD_NOT_NEEDED(不允许输入法)。
当popup window中包含EditText时可能会涉及这方面,可能是出现输入法显示在popup window后面,导致无法输入的问题,可以修改焦点和这里。*/
int getInputMethodMode()
//返回当前popup window对输入法的设置模式
int getMaxAvailableHeight(View anchor)
//返回能使当前popup window完整显示的最大高度
int getMaxAvailableHeight(View anchor, int yOffset)
//同上
void setSoftInputMode(int mode)
//设置输入法的操作模式
int getSoftInputMode()
//获得输入法的操作模式
int getWidth()
Return this popup‘s width MeasureSpec
void setHeight(int height)
Change the popup‘s height MeasureSpec
boolean isAboveAnchor()
//判断popup window是否超出了父View的布局之外
boolean isFocusable()
//判断当前popup window是否获得焦点
boolean isOutsideTouchable()
//判断当前pw的外界触碰是否有响应
boolean isShowing()
//判断当前popup window是否处于显示状态
boolean isSplitTouchEnabled()
//判断当前pw是否支持多点触碰
boolean isTouchable()
//判断当前pw是否接受触摸事件
void setAnimationStyle(int animationStyle)
//设置popup window的动画样式,有什么样式去Animation
void setBackgroundDrawable(Drawable background)
//设置pw背景
void setClippingEnabled(boolean enabled)
/*允许弹出窗口超出屏幕范围。默认情况下,窗口被夹到屏幕边界。设置为false将允许Windows精确定位。也就是说,如果这个Popupwindow显示区域 不足或者层叠将导致绘制位置计算不准确,需要手动设置为false */
boolean isClippingEnabled()
Indicates whether clipping of the popup window is enabled.
void setIgnoreCheekPress()
/*这个以前我也没见过,还蛮好玩。
设置是否忽略“脸颊触碰”,默认为false,即不忽略。
什么是“脸颊触碰”? Events都有一个大小,当Events的大小比手指尺寸大时即为CheekPress,这个可能常用于打电话时脸颊碰到屏幕的情况*/
void setOnDismissListener(PopupWindow.OnDismissListener onDismissListener)
//popup window消失时的回调方法
void setOutsideTouchable(boolean touchable)
/*控制popup window以外的区域被点击后是否有影响,一般与setTouchInterceptor配合使用*/
void setSplitTouchEnabled(boolean enabled)
//是否允许分开、多点触控,一般很少用,不容易控制
void setTouchInterceptor(View.OnTouchListener l)
/*当popup window被触碰时的回调方法*/
void setTouchable(boolean touchable)
//设置popup window是否可触碰
void setWidth(int width)
/*修改popup window的宽度,如果已经显示了popup window,修改后不会立即更新。只有下次出现或者调用update()方法才会更新*/
void setWindowLayoutMode(int widthSpec, int heightSpec)
//改变popup管理的window的尺寸
void showAsDropDown(View anchor)
/*(anchor,顾名思义:锚。)
以触发弹出窗的anchor为基准,出现在anchor的正下方,弹出的pop_view左上角正对view的左下角,偏移量默认为0,0*/
void showAsDropDown(View anchor, int xoff, int yoff)
/* 有参数的话,就是以anchor的左下角进行偏移,xoff正的向右,负的向左. yoff,正的向下,负的向上*/
void showAsDropDown(View anchor, int xoff, int yoff, int gravity)
/*和上一种相似,这个用的比较少*/
void showAtLocation(View parent, int gravity, int x, int y)
/*在特定的地点弹出一个window显示指定的内容
parent:传你当前Layout的id;
gravity:Gravity.BOTTOM(以屏幕左下角为参照),偏移量会以它为基准点
当x y为0,0是出现在底部居中*/
void update(View anchor, int width, int height)
void update(int x, int y, int width, int height)
void update(View anchor, int xoff, int yoff, int width, int height)
Updates the position and the dimension of the popup window.
void update()
void update(int x, int y, int width, int height, boolean force)
void update(int width, int height)
/*都是更新popup window的尺寸和位置,取决于你是在参数里进行改变,还是调用setWidth等方法改变后再更新*/
标签:android api popuwindow
原文地址:http://blog.csdn.net/u011240877/article/details/46058349