Android:PopupMenu的位置

问题描述:

我对GridView的每个项目都使用GridView和PopupMenu。不幸的是,弹出窗口出现在单击项目的下方或上方。我希望它水平和垂直出现在屏幕*。Android:PopupMenu的位置

PopupMenu popupMenu = new PopupMenu(wrapper, v); 
popupMenu.getMenuInflater().inflate(R.menu.item_gridview_menu, popupMenu.getMenu()); 

我已经尝试设置重力中心这样

PopupMenu popup = new PopupMenu(this, v,Gravity.CENTER); 

,但它只是居中弹出了被点击的项目。 此外,我已经风格弹出用:

<style name="PopupMenu" parent="@android:style/Widget.PopupMenu"> 
    <item name="android:popupBackground">@android:color/white</item> 
    <item name="android:gravity">center_horizontal</item> 
    <item name="android:textColor">@color/white</item> 
    <item name="android:background">@color/colorPrimary</item> 
</style> 

但这并没有帮助。有任何想法吗?

有这样的任务,并为此定制AlertDialog。

final Dialog dialog = new Dialog(context); 
     dialog.setContentView(R.layout.custom); // Your custom XML 
     dialog.setTitle("Title..."); 

     // set the custom dialog components - text, image and button 
     TextView text = (TextView) dialog.findViewById(R.id.text); 
     text.setText(); 

     ImageView image = (ImageView) dialog.findViewById(R.id.image); 
     image.setImageResource(); 

     Button dialogButton = (Button) 
     dialog.findViewById(R.id.dialogButtonOK); 
     dialogButton.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       dialog.dismiss(); 
      } 
     }); 

     dialog.show(); 
+0

是否有可能加入一个警告对话框点击的项目?我想用它作为菜单,而不仅仅是一个弹出窗口。 –

+0

当然,正如我在'dialogBu​​tton.setOnClickListener'中所显示的那样,您可以放置​​任何您需要的视图元素。 ImageView,任何布局等 –

+0

并且不要忘记在'findViewById'之前使用根视图' –

尝试使用此对话框

final Dialog myDialog = new Dialog(this); 
    myDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    myDialog.setContentView(R.layout.dialog_layout); 

    Window window = myDialog.getWindow(); 
    window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT); 
    window.setGravity(Gravity.CENTER); 
    myDialog.show(); 
+0

非常感谢您的答案,您一直非常乐于助人。 –

+0

@KostasSt最受欢迎 –