2016-06-22 4 views
0

나는 버튼이 : 내가 버튼을 클릭 할 때의 (a있는 ScrollView에서) "btnOpenPopup을", 팝업 창이 I 화면 여기팝업 창 안드로이드

에 팝업 창을 이동할 수 있습니다 나타납니다 것은 내 코드입니다 : 내가있는 ScrollView에 btnOpenPopup를 이동할 때

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; 
        } 
       }); 
      } 

     } 

    }); 

문제는 popupwindow 우리가 어떻게 btnOpenPopup를 이동할 때 이동 팝업 창을 방지하기 위해 위치를두고 btnOpenPopup

를 따를 것입니까? 미리 감사드립니다.

+0

[다음] (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