PopWindow

  1. 创建Popup界面layout
  2. 获取popupwindow界面
  3. 获取popupwindow对象 new一个就可以了
  4. showAsDropDown(view,0,0)显示在对象的下方,0,0对应锚点
    方法摘要
    void dismiss()
    int getAnimationStyle()
    //返回该popup window出现或消失的动画类型,返回值为整型
    Drawable getBackground()
    //返回popup window的背景,返回值为Drawable类型
    View getContentView()
    //返回popup window展示的内容,返回值为一个View
    int getHeight()
    //返回该popup window的高度值,返回值为int型
    int getInputMethodMode()
    //返回当前popup window对输入法的设置模式
    int getMaxAvailableHeight(View anchor)
    //返回能使当前popup window完整显示的最大高度
    int getMaxAvailableHeight(View anchor, int yOffset)
    //返回能使当前popup window完整显示的最大高度
    int getWidth()
    //返回该popup window的宽度值,返回值为int型
    boolean isAboveAnchor()
    //判断popup window是否超出了父View的布局之外
    boolean isClippingEnabled()
    //判断当前popup window是否获得焦点
    boolean isOutsideTouchable()
    //判断当前popup window的外界触碰是否有响应
    boolean isShowing()
    //判断当前popup window是否处于显示状态
    boolean isTouchable()
    //判断当前popup window是否接受触摸事件
    void setAnimationStyle(int animationStyle)
    //设置popup window的动画样式,有什么样式去Animation
    void setBackgroundDrawable(Drawable background)
    //设置popup window背景
    void setClippingEnabled(boolean enabled)
    /*允许弹出窗口超出屏幕范围。默认情况下,窗口被夹到屏幕边界。设置为false将允许Windows精确定位。也就是说,如果这个Popupwindow显示区域 不足或者层叠将导致绘制位置计算不准确,需要手动设置为false /
    void setContentView(View contentView)
    //设置该popup window显示的内容
    void setFocusable(boolean focusable)
    //设置该popup window是否获得焦点
    void setHeight(int height)
    // 设置是否忽略“脸颊触碰”,默认为false,即不忽略。
    什么是“脸颊触碰”? Events都有一个大小,当Events的大小比手指尺寸大时即为CheekPress,这个可能常用于打电话时脸颊碰到屏幕的情况
    /

void setInputMethodMode(int mode)
/设置输入法的模式,参数为这三个:
INPUT_METHOD_FROM_FOCUSABLE(根据是否可以获得焦点决定),
INPUT_METHOD_NEEDED(允许输入法),
INPUT_METHOD_NOT_NEEDED(不允许输入法)。
当popup window中包含EditText时可能会涉及这方面,可能是出现输入法显示在popup window后面,导致无法输入的问题,可以修改焦点和这里。
/

void setOnDismissListener(PopupWindow.OnDismissListener onDismissListener)
//popup window消失时的监听
void setOutsideTouchable(boolean touchable)
Controls whether the pop-up will be informed of touch events outside of its window.
//控制popup window以外的区域被点击后是否有影响,一般与setTouchInterceptor配合使用
void setTouchable(boolean touchable)
//设置popup window是否可触碰
void setTouchInterceptor(View.OnTouchListener l)
//当popup window被触碰时的回调方法
void setWidth(int width)
//修改popup window的宽度,如果已经显示了popup window,修改后不会立即更新。只有下次出现或者调用update()方法才会更新
void setWindowLayoutMode(int widthSpec, int heightSpec)
//改变popup window管理的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 showAtLocation(View parent, int gravity, int x, int y)
//在特定的地点弹出一个window显示指定的内容
parent:传你当前Layout的id;
gravity:Gravity.BOTTOM(以屏幕左下角为参照),偏移量会以它为基准点
当x y为0,0是出现在底部居中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值