0

我正在开发一个显示ContextMenu. 现在,当ContextMenu按下其中的一个菜单项时,我想显示一个PopupWindow. 我在互联网上找到了一些如何使用的示例,PopupWindow但我仍然有问题。我有以下代码:

LayoutInflater layoutInflater = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView = layoutInflater.inflate(R.layout.popup, null);
final PopupWindow popupWindow = new PopupWindow(popupView, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
popupView.showAtLocation(this.findViewById(R.id.main_layout), Gravity.CENTER, 0, 0);

在 Activity 的 XML 文件中:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#232323" >

....

</RelativeLayout>

我认为这应该可行,但我收到以下错误消息:

“方法 showAtLocation(View, int, int, int) 对于 View 类型未定义”

这是什么意思?我给 showAtLocation 一个视图和三个整数,对吗?所以有什么问题?你们有什么想法吗?

4

3 回答 3

2
popupView.showAtLocation(this.findViewById(R.id.main_layout), Gravity.CENTER, 0, 0);

将此行更改为

popupWindaow.showAtLocation(popupView,Gravity.CENTER, 0, 0);

像这样。

注意。你已经showAtLocationWindaow,而不是View

我希望这能帮到您。

于 2013-05-15T10:12:04.893 回答
1

你用 popView 调用它。相反,您应该使用 popupWindow 调用它。

此方法适用于弹出窗口而不适用于视图

于 2013-05-15T09:57:44.863 回答
0

请检查这个

popupview.showAtLocation(view, Gravity.CENTER, 0, 0);

第一个参数视图是您当前页面中的视图,根据该视图位置出现此弹出视图

于 2013-05-15T10:00:41.833 回答