当用户点击任何显示多个子类别的列表项时,我试图在ListActivity上放置ContextMenu。不要打扰告诉我其他替代方案(ExpandableList,RadioButton等)。
如何显示完整文本,而不是将其截断?以下是我填充ContextMenu的方法:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
//Fill context menu with appropriate subcategory
menu.setHeaderTitle("Categories");
for(String item : menuItem)
{
menu.add(0, v.getId(), menu.size()+1, item);
}
}
请注意,menuItem只是一个String []数组
这是我的ContextMenu。 ContextMenu 我觉得自己像一个没有足够声誉的白痴发布图片。
答案 0 :(得分:0)
我所知道的唯一方法是从XML而不是仅仅在代码中创建菜单,并更改文本大小,以便所有文本都适合。我环顾四周,找不到任何改变程序生成菜单文本大小的信息。
有关从XML创建上下文菜单的文档是here。
答案 1 :(得分:0)
我遇到了类似的问题;但是,我使用菜单资源xml而不是通过代码设置标题。
菜单项可以包含标题和" android:titleCondensed"对于标题将被截断的情况。
据我所知,如果您需要更多自定义行为,则需要指定自己的布局资源来描述与标准Android菜单资源提供的内容相比更复杂的行为。基本上,您可以使用自己的布局覆盖默认布局。
如果您以编程方式设置字符串以在不同时间实现具有不同项目的上下文菜单,则可以考虑在xml菜单资源中指定标题和精简标题,然后在onCreateContextMenu中,您可以添加逻辑以调用" setMenuItemVisibility"对于每个项目,过滤掉您不希望在任何给定时间显示的项目。