网上的这类答案很多,不同的手机也会出现不同的情况,自己每次做这个功能都要掉进去很多次坑,分享给大家,也自己做一个笔记
话不多先看下效果
代码开始:
首先定义一个 PopupWindow
private PopupWindow pop = null;
然后在监听里面这么写:
pop = new PopupWindow(ModifiedDataActivity.this); View view = getLayoutInflater().inflate(R.layout.item_popupwindows, null);//加载布局 pop.setWidth(ViewGroup.LayoutParams.MATCH_PARENT); //设置PopupWindow 一些参数 pop.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); pop.setBackgroundDrawable(new BitmapDrawable()); pop.setFocusable(true); pop.setOutsideTouchable(true); pop.setContentView(view); pop.showAtLocation(view, Gravity.BOTTOM, 0, 0); RelativeLayout parent = (RelativeLayout) view.findViewById(R.id.parent); //最外层布局 Button bt1 = (Button) view.findViewById(R.id.item_popupwindows_camera); Button bt2 = (Button) view.findViewById(R.id.item_popupwindows_Photo); Button bt3 = (Button) view.findViewById(R.id.item_popupwindows_cancel); parent.setOnClickListener(new View.OnClickListener() { // 设置点击最外层布局关闭PopupWindow @Override public void onClick(View v) { pop.dismiss(); </