通过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);