1

当用户单击显示多个子类别的任何列表项时,我试图在我的 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 我觉得自己像个白痴,没有足够的声誉来张贴图片。

4

2 回答 2

0

我知道的唯一方法是从 XML 而不是仅在代码中创建菜单并更改文本大小,以便所有文本都适合。我环顾四周,找不到任何有关更改程序生成菜单的文本大小的信息。

有关从 XML 创建上下文菜单的文档在这里

于 2012-05-31T04:21:53.950 回答
0

我遇到了类似的问题;但是,我使用的是菜单资源 xml,而不是通过代码设置标题。

对于标题将被截断的场景,菜单项可以包含标题和“android:titleCondensed”。

据我所知,如果您需要更多自定义行为,则需要指定自己的布局资源来描述与标准 Android 菜单资源提供的相比更复杂的行为。本质上,您可以用自己的布局覆盖默认布局。

如果您以编程方式设置字符串以在不同时间实现具有不同项目的上下文菜单,您可以考虑在 xml 菜单资源中指定标题和压缩标题,然后在 onCreateContextMenu 中,您可以添加逻辑来为每个项目调用“setMenuItemVisibility”以过滤掉您不想在任何给定时间显示的项目。

于 2016-07-26T17:29:18.857 回答