自定义一个 PopupWindow,当使用的时候在构造方法中 传值进行初始值设置。 点击PopupWindow以外的部分,PopupWindow消失,this.setOutsideTouchable(true)属性就是点击外部消失,但是很多时候失效,,这就需要设置this.setBackgroundDrawable(new BitmapDrawable()); 这样问题就解决了
package net.tycmc.zhinengwei.shebei.factory;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.androidannotations.annotations.ViewById;
import org.apache.commons.collections.MapUtils;
import net.tycmc.bulb.bases.xlistView.XListView;
import net.tycmc.zhinengwei.R;
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.ColorDrawable;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager;
import android.widget.EditText;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
public class GongzuoshijianPopupWindow extends PopupWindow {
private View mMenuView;
private XListView linkmanListView;
private MyFactoryShebeiFragment context;
EditText et_starttime;// 开始时间
EditText et_endtime;// 结束时间
RelativeLayout relative_time_queding;// 工作时间 输入完成 确定按钮
RelativeLayout relative_time_buxian;// 工作时间 不限 按钮
public GongzuoshijianPopupWindow(MyFactoryShebeiFragment context) {
this.context = context;
LayoutInflater inflater = (LayoutInflater) context.getActivity()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mMenuView = inflater.inflate(R.layout.pop_gongzuoshijian, null);
et_starttime = (EditText) mMenuView.findViewById(R.id.et_starttime);
et_endtime = (EditText) mMenuView.findViewById(R.id.et_endtime);
relative_time_queding = (RelativeLayout) mMenuView
.findViewById(R.id.relative_time_queding);
relative_time_buxian = (RelativeLayout) mMenuView
.findViewById(R.id.relative_time_buxian);
relative_time_queding.setOnClickListener(context);
relative_time_buxian.setOnClickListener(context);
show();
}
public void show() {
// 设置SelectPicPopupWindow的View
this.setContentView(mMenuView);
this.setWidth(LayoutParams.MATCH_PARENT);
// 设置SelectPicPopupWindow弹出窗体的高
this.setHeight(LayoutParams.WRAP_CONTENT);
// 设置SelectPicPopupWindow弹出窗体可点击
this.setFocusable(true);
// 设置SelectPicPopupWindow弹出窗体动画效果
// this.setAnimationStyle(R.style.AnimBottom);
// 实例化一个ColorDrawable颜色为半透明
this.setOutsideTouchable(true);
this.setBackgroundDrawable(new BitmapDrawable());
// mMenuView添加OnTouchListener监听判断获取触屏位置如果在选择框外面则销毁弹出框
}
}