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

时间:2013-12-08 08:29:39

标签: android popup textview menuitem

我想更改弹出菜单项的文本大小。我编写了这段代码来创建一个弹出菜单。 但我的问题是我无法访问popupmenu的textView,即“EXIT”,以便我可以使用

    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文件来膨胀这些项目。我想以编程方式进行,因为这些popupitems是动态生成的。

提前致谢。

2 个答案:

答案 0 :(得分:1)

不幸的是,这不是微不足道的。要更改MenuItem外观,即使在这种简单的情况下,您也必须为其设置自定义View。但是只有当MenuItem显示为动作时才会起作用,即不在列表中,这不是你的情况。要在PopupMenu中自定义列表的外观,您必须使用PopUpWindow。例如,请参阅this answer

在您的情况下,由于您希望动态添加元素,因此最佳解决方案是使用正确的Adapter方法实现您自己的getView(),并将其与ListView和{{一起使用1}}。

答案 1 :(得分:0)

我担心不可能那样做。您可以做的最接近的事情如下:

  • 创建实施View
  • previousView R.id.actionbar_item
  • 使用View来操纵文字大小
  • 通过PopupMenu
  • popupmenu.getMenu().add(Menu.NONE, 0 , Menu.NONE, "Exit");添加项目
  • 通过MenuItem
  • 创建menuItem对象MenuItem menuItem = popupmenu.getMenu().getItem(0);
  • 然后设置menuItem.setActionView(previousView);

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