2016-06-22 115 views
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移動? 在此先感謝!

+0

您是否在關注[this](http://android-er.blogspot.in/2012/03/example-of-using-popupwindow.html)? – pRaNaY

回答

0

我認爲你需要改變.showAtLocation(..)參數。

變化

popupWindow.showAsDropDown(btnOpenPopup, 50, -30); 

popupWindow.showAsDropDown(rootViewId, 50, -30);// RootView id is your main layout id. 

我認爲你需要添加ScrollViewId

我希望它能幫助你。

+0

它不工作兄弟 – Liar