2017-04-27 205 views
0

我想移动和/解雇我的弹出窗口,如Facebook评论一样弹出窗口做。我尝试了自己并搜索,但失败了。你能帮我这么做吗?弹出窗口不动如Facebook评论/像弹出窗口做

我的代码:

int display_width=context.getResources().getDisplayMetrics().widthPixels; 
       int display_height=context.getResources().getDisplayMetrics().heightPixels; 

       final PopupWindow popupWindow=new PopupWindow(viewTmp_comment, display_width, display_height-60,true); 
       popupWindow.setOutsideTouchable(false); 

       popupWindow.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED); 
       popupWindow.showAsDropDown(view); 
       popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
       popupWindow.setTouchable(true); 
       popupWindow.showAtLocation(view, Gravity.CENTER,0,0); 
       popupWindow.setContentView(view); 

       popupWindow.getContentView().setOnDragListener(new View.OnDragListener() { 
        @Override 
        public boolean onDrag(View view, DragEvent dragEvent) { 

         switch (dragEvent.getAction()) { 
          case MotionEvent.ACTION_DOWN: 
           Toast.makeText(context,"Down",Toast.LENGTH_LONG).show(); 
           popupWindow.dismiss(); 
           break; 

//      case MotionEvent.ACTION_MOVE: 
//      Toast.makeText(context,"Up",Toast.LENGTH_LONG).show(); 
////      popupWindow.dismiss(); 
//      break; 
         } 

         return false; 
        } 
       }); 

回答

0

Facebook的对话框上升,所以你必须把它从当前位置转换到顶部

<translate 
    android:fromYDelta="0%p" 
    android:toYDelta="-30%p" 
    android:duration="1000" /> 

它是关于动画,你应该看看:Android animation

更新: 定义你的风格:例如

<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog"> <item name="android:windowAnimationStyle">@style/MyAnimation.Windo‌​w</item> </style> <style name="MyAnimation.Window" parent="@android:style/Animation.Activity"> <item name="android:windowExitAnimation">@anim/slide_up</item> </style> 

,并设置popupWindow.setAnimationStyle(R.style.DialogTheme)不R.anim

+0

窗口不动了一下 – AAA

+0

你添加动画到您的对话框看法? –

+0

是的,我加入了一些动画,但没有奏效 – AAA