android popupwindow

本文介绍如何利用LayoutInflater从布局文件加载View,并将其整合到PopupWindow中,实现自定义弹窗功能。包括初始化View、设置宽高、添加背景及交互逻辑等关键步骤。

通过LayoutInflater得到一个View,在设定一个宽高,放入到PopupWindow类中即可。

关键的代码:

----------------------------------------------------------------------------

初始化:

        View v = LayoutInflater.from(this).inflate(R.layout.popup, null);         //PopupWindow 的自定义View
        v.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);  //根据内容大小自定义高宽

    PopupWindow popupWindow = new PopupWindow(v, v.getMeasuredWidth(), v.getMeasuredHeight());     //通过构造函数初始化PopupWindow对象
        popupWindow.setFocusable(true);                                            //如果想设置点击window外部,PopupWindow消失的话, 必须得加上这句话
        popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.bg));
        popupWindow.setOutsideTouchable(true); // 触摸popupwindow外部,popupwindow消失。这个要求你的popupwindow要有背景图片才可以成功,如上

----------------------------------------------------------------------------

 

   popupWindow.showAsDropDown(btnShowPopup);      //设置按哪个控件 会触发PopupWindow

       popupWindow.dismiss();                                          //PopupWindow 消失

 

 

//        //PopupWindow 遮挡住软键盘解决方法
//        historyPopup.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
//        historyPopup.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

转载于:https://www.cnblogs.com/lianghui66/archive/2013/05/21/3090215.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值