//创建一个空的popupwindow
public PopupWindow()
//contentView popupwindow要展示的view
public PopupWindow(View contentView)
//width:popupwindow的宽 height:popupwindow的长
public PopupWindow(int width, int height)
//contentView popupwindow要展示的view width:popupwindow的宽 height:popupwindow的高
public PopupWindow(View contentView, int width, int height)
//contentView popupwindow要展示的view width:popupwindow的宽 height:popupwindow的高 focusable:是否获取焦点
public PopupWindow(View contentView, int width, int height, boolean focusable)
##设置方法
//设置动画特效 即 展示和消失动画
public void setAnimationStyle(int animationStyle)
//主要作用是为了设置 PopupWindow 显示的时候是否会与 StatusBar 重叠(如果存在的话也包括 SystemBar )
public void setAttachedInDecor(boolean enabled)
//设置 PopupWindow 的背景
public void setBackgroundDrawable(Drawable background)
//设置 PopupWindow 允许超出窗口 默认为false
public void setClippingEnabled(boolean enabled)
//设置 PopupWindow 内展示的内容,可在创建popupwindow时以参数的形式传入
public void setContentView(View contentView)
//设置 PopupWindow 的高度,类似于 3D 效果的阴影
public void setElevation(float elevation)
//设置 PopupWindow的入场动画
public void setEnterTransition(Transition enterTransition)
//设置出场动画
public void setExitTransition(Transition exitTransition)
//设置 popupWindow 是否可以获取焦点
public void setFocusable(boolean focusable)
//设置 PopupWindow的高度
public void setHeight(int height)
/* 设置是否忽略“脸颊触碰”,默认为false,即不忽略。
什么是“脸颊触碰”? Events都有一个大小,当Events的大小比手指尺寸大时即为CheekPress,这个可能常用于打电话时脸颊碰到屏幕的情况*/
public void setIgnoreCheekPress()
/*设置输入法的操作模式 参数为这三个:
INPUT_METHOD_FROM_FOCUSABLE(根据是否可以获得焦点决定),
INPUT_METHOD_NEEDED(允许输入法),
INPUT_METHOD_NOT_NEEDED(不允许输入法)。
当popup window中包含EditText时可能会涉及这方面,可能是出现输入法显示在popup window后面,导致无法输入的问题,可以修改焦点和这里。*/
public void setInputMethodMode(int mode)
//监听 PopupWindow关闭的事件
public void setOnDismissListener(OnDismissListener onDismissListener)
//设置 点击 PopupWindow意外区域,隐藏 popupWindow 然而并没有什么卵用
public void setOutsideTouchable(boolean touchable)
// PopupWindow触摸时的监听回调
public void setTouchInterceptor(OnTouchListener l)
//设置 PopupWindow是否可触摸
public void setTouchable(boolean touchable)
//设置 popwindow 的宽度
public void setWidth(int width)
//设置 PopupWindow布局类型
public void setWindowLayoutType(int layoutType)
//设置 PopupWindow 在某个控件的下方,某控件的左下角与 PopupWindow 的左上角对齐
public void showAsDropDown(View anchor)
//设置 PopupWindow 在某个控件的下方,某控件的左下角与 PopupWindow 的左上角对齐,可以设置偏移量 向左为副 ,向右为正;向上为负,向下为正
public void showAsDropDown(View anchor, int xoff, int yoff)
//设置 PopupWindow 在相当于父布局进行摆放,可以设置偏移量。
public void showAtLocation(View parent, int gravity, int x, int y)
//隐藏 PopupWindow
public void dismiss()
## 获取方法
//获取 PopupWindow 动画样式
public int getAnimationStyle()
//获取 PopupWindow 背景
public Drawable getBackground()
//获取 PopupWindow 设置的 view 返回一个view对象
public View getContentView()
//获得 PopupWindow 的悬浮高度
public float getElevation()
//获取 PopUpWindow 的入场动画
public float getElevation()
//获取 PopupWindow 的出场动画
public Transition getExitTransition()
//获取 PopupWindow 的高度
public int getHeight()
//获取输入模式
public int getInputMethodMode()
//获取 PopupWindow 是否应该与寄生(不太合理但是不知道用啥词)对象重叠
public boolean getOverlapAnchor()
//获取 Popwindow 的宽度
public int getWidth()
//获取 PopupWindow 的布局类型
public int getWindowLayoutType()
//获取可以让 PopupWindow 设置的最大高度
public int getMaxAvailableHeight(View anchor)
public int getMaxAvailableHeight(View anchor, int yOffset)
//获取可以设置 PopupWindow 的最大高度,可以忽略软键盘。
public int getMaxAvailableHeight(View anchor, int yOffset, boolean ignoreBottomDecorations)
##判断方法
//判断 PopupWindow 是否在超出父布局
public boolean isAboveAnchor()
// 判断 PopupWindow 是否在父布局的 装饰上
public boolean isAttachedInDecor()
//判读 PopupWindow 是否可以超出窗口
public boolean isClippingEnabled()
//判断 PopupWindow 是否可以获取焦点
public boolean isFocusable()
//判断 PopupWindow 是否相应自身以外的点击事件
public boolean isOutsideTouchable()
//判断 PopupWindow 是否展示
public boolean isShowing()
//判断 PopupWindow 是否支持多点触控
public boolean isSplitTouchEnabled()
//判断 PopupWindow 是否支持触摸事件
public boolean isTouchable()
##更新位置或更新内容的方法
//更新当前 PopupWindow
public void update()
//更新 Popwindow 到新的形态 参数:长度、宽度
public void update(int width, int height)
//更新 Popwindow 到新的位置、新的形态 参数:新位置的坐标,长度、宽度
public void update(int x, int y, int width, int height)
//同上
public void update(int x, int y, int width, int height, boolean force)
//相对于宿主 更新体型
public void update(View anchor, int width, int height)
//相对宿主更新 大小 位置
public void update(View anchor, int xoff, int yoff, int width, int height)
Popupwindow常用方法
最新推荐文章于 2024-08-18 03:33:20 发布