我有一个弹出窗口,我想最初将它放在屏幕的右侧,但仍允许它拖动。
如果我将重力设置为中心,我可以将它移动得很好
LinearLayout l = initNoteLayout(context);
mNotePopup = new PopupWindow(l, 650, 370, true);
l.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.getRawX();
dy = (int) motionEvent.getRawY();
break;
case MotionEvent.ACTION_MOVE:
int x = (int) motionEvent.getRawX();
int y = (int) motionEvent.getRawY();
int left = (x - dx);
int top = (y - dy);
//Log.d("test", "x: " + left + " y: " + top);
mNotePopup.update(left, top, -1, -1);
break;
}
return true;
}
});
mNotePopup.showAtLocation(l, Gravity.CENTER, 0, 0);
这可以工作,但它在屏幕的中心。如果我设置
mNotePopup.showAtLocation(l, Gravity.RIGHT, 0, 0);
它出现在我想要的地方,我可以上下拖动但是它粘在右侧。
任何想法?我已经尝试了我能想到的每一种重力旗帜组合
感谢