Android popupwindow点击显示,再点击消失

来源:互联网 发布:淘宝网森马男装 编辑:程序博客网 时间:2024/04/19 18:14

popwindow设置了点击外围消失

popupwindow点击按钮时弹出来,再点击消失,但设置了点击外围消失,但是实际出来额效果,poupwindow会消失然后再次弹出。

解决方案

private void showPopup(View v) {        selectTypeLinearLayout.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);        int popWidth=selectTypeLinearLayout.getMeasuredWidth();        View view=View.inflate(getActivity(),R.layout.dialog_main_pop,null);        if(popupWindow==null){            popupWindow=new PopupWindow(view,popWidth, ViewGroup.LayoutParams.WRAP_CONTENT);        }         ListView listView= (ListView) view.findViewById(R.id.lv_pop);        MainPopupAdapter adpater=new MainPopupAdapter(getActivity(),popList);        listView.setAdapter(adpater);        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                popupWindow.dismiss();            }        });        arrowTV.setBackground(getActivity().getResources().getDrawable(R.mipmap.icon_arrow_white));        popupWindow.setBackgroundDrawable(new ColorDrawable(0));        popupWindow.setOutsideTouchable(true);        popupWindow.setFocusable(true);//必须写        view.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);        popupWindow.setTouchInterceptor(new View.OnTouchListener() {            @Override            public boolean onTouch(View v, MotionEvent event) {                if(event.getAction()==MotionEvent.ACTION_OUTSIDE){                    popupWindow.dismiss();                    return true;                }                return false;            }        });        popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {            @Override            public void onDismiss() {            }        });        popupWindow.showAsDropDown(v);    }
1 0
原创粉丝点击