我正在尝试在按下某个菜单项时创建一个弹出窗口。我想我有大部分代码,但是我不知道如何为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);
}
我应该为菜单视图添加什么,还是应该以其他方式执行此操作?我希望这是有道理的,并感谢你的帮助!
答案 0 :(得分:7)
我知道它已经过去了4个月,也许你已经通过了,但我是你的解决方案,我昨天刚刚在这里报名,所以是啊..这是你问题的解决方案,复制和粘贴......
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);
}
所以基本上你所做的就是你使用你膨胀的视图,在你的情况下是“布局”。 希望它有所帮助,让我知道......