1

我正在尝试在按下某个菜单项时创建一个弹出窗口。我想我有大部分代码,但是我不确定要为 showAtLocation(...) 或 showAsDropDown(...) 做什么。

public boolean onOptionsItemSelected(MenuItem item) {
      switch (item.getItemId()) {
         ...
        case R.id.about:
          displayPopupWindow();
          return true;
         ...
      }
}

public void displayPopupWindow() {
    PopupWindow popup = new PopupWindow(this);
    View layout = getLayoutInflater().inflate(R.layout.popup, null);
    popup.setContentView(layout);
    popup.setOutsideTouchable(true);
    popup.setFocusable(true);
    popup.showAtLocation(??, Gravity.CENTER, 0, 0);
}

我应该为菜单视图放置什么,还是应该以另一种方式这样做?我希望这是有道理的,并感谢您的帮助!

4

1 回答 1

8

我知道已经 4 个月了,也许你已经通过了,但我是你的解决方案,我昨天才在这里注册,所以 yh.. 这是你问题的解决方案,复制并粘贴..

public boolean onOptionsItemSelected(MenuItem item) {
  switch (item.getItemId()) {
     ...
    case R.id.about:
      displayPopupWindow();
      return true;
     ...
     }
}

public void displayPopupWindow() {
    PopupWindow popup = new PopupWindow(this);
    View layout = getLayoutInflater().inflate(R.layout.popup, null);
    popup.setContentView(layout);
    popup.setOutsideTouchable(true);
    popup.setFocusable(true);
    popup.showAtLocation(layout, Gravity.CENTER, 0, 0);
}

所以基本上你所做的就是使用你膨胀的视图,在你的情况下是“布局”。希望它有帮助,让我知道......

于 2014-07-31T19:25:51.020 回答