一個可以跟隨手指移動的PopupWindow

閒來無事寫了一個可以移動的Popupwindow記錄一下

        //整體展示popupwindow後 加上這個監聽就可以了
        //遇到的坑就是如果界面中存在ViewPager輪播,輪播後popupwindow會回到原來的位置,暫時解決方法:在MotionEvent.ACTION_MOVE:中停止輪播,當PopupWindow隱藏後再重新開始輪播
        //********************注意是popupview設置監聽************************
        //********************其實我嘗試了下用popupwindow中的某個控件也是可以的************************
        popupView.setOnTouchListener(new View.OnTouchListener() {
            int orgX, orgY;
            int offsetX,offsetY;
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        orgX = (int) event.getX();
                        orgY = (int) event.getY();
                        break;
                    case MotionEvent.ACTION_MOVE:
                        offsetX = (int) event.getRawX() - orgX;
                        offsetY = (int) event.getRawY() - orgY;
                        mPopupWindow.update(0, offsetY, -1, -1, true);
                        break;
                    case MotionEvent.ACTION_UP:
                        break;
                }
                return true;
            }
        });
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章