0
我有一個按鈕:「btnOpenPopup」(在滾動視圖),當我點擊該按鈕,會出現一個彈出窗口,我可以在屏幕彈出窗口的Android
這裏上移動這個彈出窗口是我的代碼:
final ImageButton btnOpenPopup = (ImageButton) findViewById(R.id.buttonUndoRedo);
btnOpenPopup.setOnClickListener(new ImageButton.OnClickListener() {
@Override
public void onClick(View arg0) {
if (popupWindowEnabled == true) {
popupWindowEnabled = false;
LayoutInflater layoutInflater =
(LayoutInflater) getBaseContext()
.getSystemService(LAYOUT_INFLATER_SERVICE);
final View popupView = layoutInflater.inflate(R.layout.popup_window, null);
final PopupWindow popupWindow = new PopupWindow(
popupView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
// Font
TextView txt = (TextView) popupView.findViewById(R.id.textViewPopupWindow);
Typeface myNewFace = Typeface.createFromAsset(getAssets(), "fonts/futura.ttf");
txt.setTypeface(myNewFace);
Button btnDismiss = (Button) popupView.findViewById(R.id.dismiss);
btnDismiss.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
popupWindow.dismiss();
popupWindowEnabled = true;
}
});
popupWindow.showAsDropDown(btnOpenPopup, 50, -30);
popupView.setOnTouchListener(new View.OnTouchListener() {
int orgX, orgY;
int offsetX, offsetY;
@Override
public boolean onTouch(View v, MotionEvent event) {
//Toast.makeText(getApplicationContext(), "dEMO", Toast.LENGTH_SHORT).show();
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;
popupWindow.update(offsetX, offsetY, -1, -1, true);
break;
}
return true;
}
});
}
}
});
問題是,當我在滾動型移動btnOpenPopup,該popupwindow將離開它的位置,並按照btnOpenPopup
如何防止彈出式窗口從我們搬家時btnOpenPopup移動? 在此先感謝!
您是否在關注[this](http://android-er.blogspot.in/2012/03/example-of-using-popupwindow.html)? – pRaNaY