popwindow 点击外部消失

来源:互联网 发布:java 反射获取类的字段 编辑:程序博客网 时间:2024/05/17 02:03

自定义一个 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监听判断获取触屏位置如果在选择框外面则销毁弹出框



}




}
0 0
原创粉丝点击