2013-01-23 70 views
0

在我的应用程序中,我有一个ListView,我注册了上下文菜单。长按一下,我调用上下文菜单,从那里处理发生长按的项目。这工作正常。但是用户可以将项目添加到列表中(单独的功能,这里不涉及),“添加项目”是上下文菜单中的项目之一。这个项目不依赖于我长期点击的项目。在没有项目的情况下长按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); 
} 

我怎样才能获得的上下文菜单弹出长单击列表中的空白?

+0

你确定ListView占用整个屏幕的高度,即使列表是空的吗?我对此有疑问。 –

+0

我已经在这里回答了类似的问题http://stackoverflow.com/questions/10447676/context-menu-for-blank-space-in-a-listview/10447941#10447941 – Luksprog

+0

@Luksprog我看了一下那个答案,谢谢。但是,我不明白如何设置ListView的高度wrap_content将实现预期的结果。当我收到很多物品时,它们不适合放在屏幕上,所以布局会混乱。 –

回答

0

ListView只会占用尽可能多的空间。我不认为点击空白空间对于用户来说也是非常直观的。为什么不在屏幕底部添加菜单按钮或简单按钮?

+0

感谢您的回答,但它不能解决问题。我已经有了所有操作的按钮,但它们也在上下文菜单中复制。 ListView占用了我指出的空间 - 否则背景颜色会有所不同。因此,ListView的空白空间_is_部分。 –

+0

好的。您是否尝试过使用ListView本身的onLongClickListener,而不是列表中的项目?我不知道这是否可行,但也许值得一试。 –

相关问题