我想更改弹出菜单项的文本大小。我编写了这段代码来创建一个弹出菜单。 但我的问题是我无法访问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是动态生成的。
提前致谢。
答案 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);
这是你最好的选择,但我还没有测试过。祝你好运!