2017-03-02 60 views
0

我想在同一位置设置对话框的位置,在其clicked..like这个如何让GridView的项目位置的x,y正确

enter image description here

,但我得到这个

enter image description here

这里是我的代码来定位对话框..

public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
     float positionX = v.getX(); 
     float positionY = v.getY(); 

     LinearLayout container = (LinearLayout) gvGrid.getFocusedChild(); 

     dialog = new Dialog(CW_Emergency.this); 
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     dialog.setContentView(R.layout.view_pager_layout); 
     dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 

     //position of popup 
     WindowManager.LayoutParams params = dialog.getWindow().getAttributes(); 
     params.x = (int) positionX; 
     params.y = (int) positionY; 

     ViewPagerAdapter adapter = new ViewPagerAdapter(container, CW_Emergency.this); 
     viewPager = (ViewPager) dialog.findViewById(R.id.view_pager); 

     dialog.show(); 



    } 

好心告诉我如何正确定位所有屏幕尺寸

+0

您是否尝试过没有设置对话框的位置? – shahid17june

+0

是的..它出现在屏幕中心 – Asad

回答

0

您可以使用PopupWindow。

mPopupWindow = new PopupWindow(
        customView, 
        LayoutParams.WRAP_CONTENT, 
        LayoutParams.WRAP_CONTENT 
      ); 

,并显示它

mPopupWindow.showAsDropDown(ItemInGridView, 0, -1 * ItemInGridView.getHeight(), Gravity.LEFT); 
0

据我要在正确的位置PopupMenu的显示对话框会更方便和简单。为了实现PopupMenu的...

  1. 首先,你必须创建内部菜单资源文件夹菜单资源文件

    <?xml version="1.0" encoding="utf-8"?> 
    <menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/menu_option1" 
        android:title="Option 1" 
        /> 
    <item android:id="@+id/menu_option2" 
        android:title="Option 2" 
        /> 
    </menu> 
    
  2. 实现你onItemClick()内将以下代码方法

    public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
    
    PopupMenu popup = new PopupMenu(this, v); 
    // Inflate the menu from xml 
    popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu()); 
    // Setup menu item selection 
    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 
        public boolean onMenuItemClick(MenuItem item) { 
         switch (item.getItemId()) { 
         case R.id.menu_option1: 
          Toast.makeText(MainActivity.this, "Option 1", Toast.LENGTH_SHORT).show(); 
          return true; 
         case R.id.menu_option2: 
          Toast.makeText(MainActivity.this, "Option 2", Toast.LENGTH_SHORT).show(); 
          return true; 
         default: 
          return false; 
         } 
        } 
    }); 
    // Show the menu 
    popup.show(); 
    
    } 
    

PopupMenu将被显示为exa靠近您要点击的视图。

+0

当我点击物品..我想禁用所有的背景像图片.. – Asad