मैं पॉपअपविंडो को स्पर्श खींचने पर स्थानांतरित करने में सक्षम होना चाहता हूं। मैं नहीं चाहता कि यूआई स्पर्श के रिलीज पर अपडेट हो। मैं पॉपअपविंडो को अपने स्पर्श का पालन करना चाहता हूं।एंड्रॉइड: कैसे पॉपअप विन्डो खींचें (स्थानांतरित करें)?
यह कुछ मैं क्या कर रहा हूँ है:
mView = mLayoutInflater.inflate(R.layout.popup,
null);
mPopupWindow = new PopupWindow(mView,
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, false);
mPopupWindow.showAtLocation(parentView, Gravity.CENTER, -5, 30);
mView.setOnTouchListener(new OnTouchListener() {
private int dx = 0;
private int dy = 0;
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
dx = (int) motionEvent.getX();
dy = (int) motionEvent.getY();
break;
case MotionEvent.ACTION_MOVE:
int x = (int) motionEvent.getX();
int y = (int) motionEvent.getY();
int left = (x - dx);
int top = (y - dy);
Log.d("test", "x: " + left + " y: " + top);
mPopupWindow.update(left, top, -1, -1);
break;
}
return true;
}
});
क्या होता है, जैसा कि मैं पॉप अप विंडो खींचें, इसे आगे और पीछे मूल स्थान और जहां मेरी उंगली है पर flickers।
चंचल Logcat परिणाम:
x: -44 y: 4
x: -43 y: 37
x: -46 y: 4
x: -46 y: 38
x: -48 y: 4
x: -47 y: 38
x: -50 y: 4
लेकिन अगर मैं निकाल सकते हैं (बाहर टिप्पणी) "mPopupWindow.update (बाएं, ऊपर, -1, -1),", यह सही परिणाम देता है। (लेकिन स्पष्ट रूप से यूआई अपडेट नहीं होगा):
x: -33 y: 0
x: -37 y: 0
x: -41 y: 0
x: -43 y: 3
x: -46 y: 3
x: -50 y: 3
x: -54 y: 4
x: -57 y: 4
कैसे मैं एक PopupWindow सही ढंग से कदम होगा?