2016-11-17 75 views
2

我有一個listView,其中每個項目都有一個按鈕,用於打開帶有選項的PopupMenu。Android PopupMenu在錯誤位置打開

大多數情況下,這些菜單在錯誤的位置打開(有時會在正確的位置打開),這些隨機打開甚至不一致。

enter image description here

enter image description here

選擇菜單中的選項並與位置正確的項目操縱我本來試圖打開菜單

我的代碼:

settings.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      PopupMenu popup = new PopupMenu(context, settings); 
      popup.getMenuInflater().inflate(R.menu.notes_menu, popup.getMenu()); 
      popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 
       public boolean onMenuItemClick(MenuItem item) { 

        String itemTitle = item.getTitle().toString(); 

        switch (itemTitle) { 

         case "Add Pictures": 

          //adding pictures 

         case "Delete": 

          //deleting 

         case "Share": 

          //sharing 

        } 

        return true; 
       } 
      }); 

      popup.show(); 


     } 
    }); 

settings按鈕位於在我的listView適配器的public View getView(final int position, View convertView, ViewGroup parent)方法裏面。

任何幫助,非常感謝! ^^

+1

您是否嘗試在onclick偵聽器之前創建彈出窗口,並且只在設置按鈕的onClickListener中調用popup.show()? – Tushar

+1

@Tushar,不,我沒有,它確實做到了!非常感謝:)任何可能的解釋,爲什麼它發生? – user6704969

+0

太棒了!你能接受我寫的答案嗎? – Tushar

回答

2

在設置onClickListener之前創建彈出窗口,並只在onClick()內調用popup.show()。

+0

感謝解決方案Tushar! –