PopupWindow介绍

  • Android的对话框有两种:PopupWindow AlertDialog.他们的不同点在于AlertDialog的位置固定,而PopupWindow的位置可以随意

    PopupWindow的位置按照有无偏移,可以分为偏移和无偏移两种 按照参照物的不同,可以分为相对于某个控件(Anchor锚)和相对于父控件

    具体如下:

mPopupWindow.showAsDropDown(View anchor);  相对于某个控件的位置(正下方),无偏移
    mPopupWindow.showAsDropDown(View anchor,int oxoff,int yoff);  相对于某个控件的位置,有偏移
    mPopupWindow.showAtLocation(View parent,int gravity,int x,int y);  相对于父控件的位置,例如正中央Gravity.CENTER,下方Gravity.BOTTOMdeng )
复制代码

//创建一个PopupWindow

   //参数1、contentView指定PopupWindow的内容
	//参数2、width
	//参数3、height
复制代码
PopupWindow mPopupWindow = new PopupWindow(textView, ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
复制代码
                 //设置PopupWindow的相关属性
                 //设置背景
                            mPopupWindow.setBackgroundDrawable(getResources().getDrawable(R.mipmap.ic_launcher));
                            mPopupWindow.getBackground().setAlpha(100); //设置透明度
                            //mPopupWindow.setAnimationStyle(); //设置动画效果
                            
复制代码
           //设置点击窗口外边窗口消失
           mPopupWindow.setOutsideTouchable(true);
           mPopupWindow.setFocusable(true);
           mPopupWindow.setTouchable(true);
复制代码
        //防止虚拟软键盘呗弹出菜单遮住
        mPopupWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);



        //显示弹窗
        //相对于某个控件的位置(正下方)  无偏移
        mPopupWindow.showAsDropDown(v);
        //相对于某个控件的位置(正左下方)  有偏移
        mPopupWindow.showAsDropDown(v,50,50);  //x.y方向各偏移50
        //相对于父控件的位置  无偏移
        mPopupWindow.showAtLocation(v, Gravity.CENTER,0,0);
        //相对于父控件的位置,有偏移
        mPopupWindow.showAtLocation(v,Gravity.BOTTOM,0,50);
        
        //关闭弹窗
        mPopupWindow.dismiss();
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值