是否可以在Android ContextMenu的菜单项中自定义文本?

时间:2013-08-26 23:34:43

标签: android text menu contextmenu customization

在我正在工作的项目中,我需要在某些活动中显示上下文菜单,除项目名称外,我们还要显示一些有关操作的描述性文本。

这意味着每个菜单项(可能)显示多行文本,并且描述性文本的颜色与标题不同。

附图中更好地解释了这一点。

I want a menu item with Title + descriptive text

我在创建这个问题之前已经做了一些研究,但找不到任何适合这个问题的东西。因此,关于此事的任何意见,无论是否可能或如何实现它都非常受欢迎:)

2 个答案:

答案 0 :(得分:1)

简短的回答是肯定的,但答案很长并不容易。它需要深入挖掘Android源代码并进行大量研究。这取决于额外文本的重要性。

如果您有兴趣,请查看this blog post(以及它的评论部分),这些内容涉及源代码的一些重要部分。它没有具体回答你的问题,但至少应该指出你正确的方向开始寻找。

最后一种可能性如果您不想这样做但是对纯文本以外的其他内容感到绝望,那就是使用“菜单”图标属性来显示描述性图像而不是文本,或者显示包含文本的图像。但是,上下文菜单不支持图标,因此您必须重新考虑UI以及是否会导致问题。

很抱歉,这可能不是您希望的那种答案!

答案 1 :(得分:-1)

虽然我之前没有做过这件事,但我很确定你可以通过膨胀自定义菜单XML来实现这一点,该菜单包含每个元素中的两个单独的文本视图,你可以根据自己的喜好设置样式。例如,您可以在context_menu.xml中创建它,然后执行类似的操作......

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

详细了解Android开发网站http://developer.android.com/guide/topics/ui/menus.html#context-menu

上的上下文菜单