if (mPopupWindow == null || !mPopupWindow.isShowing()) {
LayoutInflater layoutInflater = LayoutInflater.from(ShopsListActivity.this);
popupView = layoutInflater.inflate(R.layout.popup_shop, null);
listView = (ListView) popupView.findViewById(R.id.lv_pop_shop);
listView.setDivider(new ColorDrawable(getResources().getColor(R.color.grey)));
listView.setDividerHeight(2);
View headView = layoutInflater.inflate(R.layout.header_shop_pop, null);//设置头部,全部选项
listView.addHeaderView(headView);
TextView tvHead = (TextView) headView.findViewById(R.id.tv_list_market_name);
if (MARKET_SIGN == sign) {//表示点击的是商场选项
tvHead.setText(R.string.shops_market);
tvHead.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mPopupWindow.dismiss();
tvMarket.setText(R.string.shops_market);
tvFloor.setText(R.string.shops_floor);
llFloor.setClickable(false);//此处全部楼层不能被点击
market_id = "";
floor = "";
mDialog.show();
addData(keyword,market_id, floor, true);
}
});
MyAdapter adapter = new MyAdapter(MARKET_SIGN);
listView.setAdapter(adapter);
} else if (FLOOR_SIGN == sign) {//表示点击的是楼层选项
tvHead.setText(R.string.shops_floor);
tvHead.setOnClickListener(new View.OnClickListener() {//是全部楼层选项
@Override
public void onClick(View view) {
mPopupWindow.dismiss();
tvFloor.setText(R.string.shops_floor);
floor = "";
mDialog.show();
addData(keyword,market_id, floor, true);
}
});
MyAdapter adapter = new MyAdapter(FLOOR_SIGN);
listView.setAdapter(adapter);
}else if(STATUS_SIGN==sign){//表示点击的是状态选项
}
popupView.setFocusableInTouchMode(true);
mPopupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
mPopupWindow.setTouchInterceptor(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_OUTSIDE)
mPopupWindow.dismiss();
return false;
}
});
mPopupWindow.setFocusable(true); //点击空白处时,隐藏掉pop窗口
mPopupWindow.setOutsideTouchable(true);
mPopupWindow.setBackgroundDrawable(new BitmapDrawable());
//此处是重点 设置背景半透明
backgroundAlpha(0.8f); mPopupWindow.showAsDropDown(view, Gravity.CENTER, 20); mPopupWindow.setOnDismissListener(new poponDismissListener());}
//设置添加屏幕的背景透明度
public void backgroundAlpha(float bgAlpha) {
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.alpha = bgAlpha; //0.0-1.0
getWindow().setAttributes(lp);
}
//添加新笔记时弹出的popWin关闭的事件,主要是为了将背景透明度改回来
class poponDismissListener implements PopupWindow.OnDismissListener {
@Override
public void onDismiss() {
backgroundAlpha(1f);
}
}