改变弹出菜单项的文本大小

3
我想改变弹出菜单项的文本大小。我已经编写了以下代码来创建一个弹出菜单。但是我的问题是,我无法访问弹出菜单中的“EXIT” textView,以便我可以使用。
    exitItem.setTextSize(40);


    //my code
    popupmenu = new PopupMenu(MainActivity.this, findViewById(R.id.actionbar_item));
    popupmenu.getMenu().add(Menu.NONE, 0, Menu.NONE, "Exit");
    popupmenu.setOnMenuItemClickListener(this);

我没有创建任何单独的XML文件来填充这些项目。我希望以编程方式执行此操作,因为这些弹出项是动态生成的。
谢谢您提前的帮助。

你解决了你的问题吗? - Dmide
不,我还是卡住了...我在考虑从我的角度改变整个情境。 - Paras Mittal
可能是如何为选项菜单设置字体?的重复问题。 - Dheeraj Bhaskar
2个回答

1
很遗憾,这不是一件容易的事情。即使在这种简单情况下,要改变MenuItem的外观,你也必须为其设置一个自定义的View。但是,只有当MenuItem作为操作显示时(即不在列表中),才能起作用,而这不是你的情况。要自定义PopupMenu中列表的外观,您必须使用PopUpWindow。例如,请参见this answer

在您的情况下,由于您想动态添加元素,可能最好的解决方案是实现自己的Adapter,并使用适当的getView()方法与ListViewPopUpWindow一起使用。


0

很抱歉,不能像那样做。您可以尝试以下方法:

  • 创建一个实现R.id.actionbar_itemView previousView
  • 使用该View来操作文本大小
  • 通过popupmenu.getMenu().add(Menu.NONE, 0 , Menu.NONE, "Exit");向您的PopupMenu添加一个项目
  • 通过MenuItem menuItem = popupmenu.getMenu().getItem(0);创建一个MenuItem对象menuItem
  • 然后设置menuItem.setActionView(previousView);

这是最好的选择,但我还没有测试过。祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接