popuwindow的顯示與隱藏問題

最近 項目中用到點擊“更多”彈出一個Popuwindow,當點擊外部區域是消失,點擊更多按鈕Popuwindow假如顯示則隱藏,隱藏則顯示,一開始設置了更多的點擊事件,發現有問題,當window顯示的時候正常它應該隱藏,結果卻沒有隱藏,因爲當點擊更多的時候首先走的是popuwindow的外部onTouch事件,這個時候popuwindow內部會將window個dismiss,解決辦法如下:直接設置更多的OnTouch事件:核心的代碼如下:


 lin.getChildAt(lin.getChildCount() - 1).setOnTouchListener(new View.OnTouchListener() {
           @Override
           public boolean onTouch(View view, MotionEvent motionEvent) {
               if(motionEvent.getAction()==MotionEvent.ACTION_DOWN){
                   Log.e("跟多", "進入了更多的onTouch()");
                   if(moreWindo==null) {
                       moreWindo = new PopupWindow(MainActivity.this);
                       View popView = layoutInflater.inflate(R.layout.more_two_dialog, null);
/*           ListView listView = (ListView) popView.findViewById(R.id.list);
           List<String> list = new ArrayList();
           list.add("15分鐘");
           list.add("2小時");
           list.add("周K");
           list.add("月K");*/
                       //PixelUtil.dp2px(MainActivity.this,80
                       //listView.setAdapter(new ArrayAdapter<String>(MainActivity.this, R.layout.item_more_dialog, list));
                       //  listView.setAdapter(new MoreAdapter(MainActivity.this));
                       moreWindo = new PopupWindow(popView, PixelUtil.dp2px(MainActivity.this, 80), WindowManager.LayoutParams.WRAP_CONTENT);
                       moreWindo.setBackgroundDrawable(new ColorDrawable(0));
                       moreWindo.setContentView(popView);
                       moreWindo.setOutsideTouchable(true);
                       moreWindo.showAsDropDown(view, -30, ((int) view.getY() - 30));
                   }else{
                       if(moreWindo.isShowing()){
                           moreWindo.dismiss();
                       }else{
                           moreWindo.showAsDropDown(view, -30, ((int) view.getY() - 30));
                       }
                   }

               }
               return true;
           }
       });




發佈了39 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章