Android 在没有项目的ListView上长时间单击时调用上下文菜单

Android 在没有项目的ListView上长时间单击时调用上下文菜单,android,listview,contextmenu,Android,Listview,Contextmenu,在我的应用程序中,我有一个列表视图,我在上下文菜单中注册了它。在长时间单击时,我调用上下文菜单并从中处理长时间单击发生的项目。这个很好用。但是,用户可以将项目添加到列表中(单独的功能,与此处无关),并且“添加项目”是上下文菜单中的项目之一。此项目不取决于我长时间单击的项目 当活动开始时,列表中只有一个项目,在它下面的列表是空的。当我长时间单击该项目时,关联菜单会显示为我想要的,但是当我长时间单击列表的空白区域时,什么也没有发生。我使用的是非常标准的代码: itemList = (ListView

在我的应用程序中,我有一个
列表视图
,我在上下文菜单中注册了它。在长时间单击时,我调用上下文菜单并从中处理长时间单击发生的项目。这个很好用。但是,用户可以将项目添加到列表中(单独的功能,与此处无关),并且“添加项目”是上下文菜单中的项目之一。此项目不取决于我长时间单击的项目

当活动开始时,列表中只有一个项目,在它下面的列表是空的。当我长时间单击该项目时,关联菜单会显示为我想要的,但是当我长时间单击列表的空白区域时,什么也没有发生。我使用的是非常标准的代码:

itemList = (ListView)this.findViewById(R.id.order_items);
this.registerForContextMenu(itemList);

...

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.order_popup, menu);
    menu.setHeaderTitle(null);
}

如何使上下文菜单在列表的空白处长时间单击时弹出?

列表视图将只占用所需的空间。我不认为点击空白对用户来说也是非常直观的。为什么不在屏幕底部添加一个菜单按钮或简单按钮。

即使列表为空,您确定ListView占据了整个屏幕高度吗?我对此表示怀疑。我在这里已经回答了类似的问题@Luksprog我看了这个答案,谢谢。但是,我看不出将ListView的高度设置为wrap_内容将如何达到预期的效果。当我得到很多项目时,它们将无法显示在屏幕上,因此布局将混乱。其想法是,长时间单击
列表视图的空白时,不会触发菜单。相反,您将包装
列表视图
内容并将其放置在包装器布局中,这样长时间单击可视空的
列表视图
(从用户角度看)将不会在
列表视图
小部件上结束,它将在包装器布局上结束(显示相同的菜单)。关于大量的项目扰乱了布局,我不知道会发生什么,但是我不知道你现在的布局。谢谢你的回答,但是这并不能解决问题。我已经有了所有操作的按钮,但它们也在上下文菜单中重复。ListView占据了我指定的空间,否则背景颜色会有所不同。因此,空空间是ListView的一部分。您是否为ListView本身而不是列表中的项目尝试了onLongClickListener?我不知道这是否有效,但也许值得一试。