首先,我看到一个堆栈线程关于相同的问题,但它不完全为我工作可能是因为我是一个新手,如果有人知道请帮助我,我在导航抽屉现在我想让菜单项对齐在中心something just like this
这是我从堆栈溢出中得到的
int positionOfMenuItem = 0; //or any other postion
MenuItem item = menu.getItem(positionOfMenuItem);
SpannableString s = new SpannableString(settingsItemTitle);
s.setSpan(new AlignmentSpan.Standard(Alignment.ALIGN_CENTER), 0, s.length(), 0);
item.setTitle(s);
我在活动主编写了这段代码,我不确定settingsItemTitle
in这段代码是什么让工作室给我错误
无法解析符号'settingsItemTitle'
如果有人知道请帮助我
而不是使用MenuItem
(以及我猜,NavigationView
),只需使用垂直LinearLayout作为抽屉内容。你将能够以任何你想要的方式设计它。
您可以尝试开发一个自定义抽屉,您可以将菜单项放在中心。
settingsItemTitle
应该被MenuItem的标题取代。如果标题已经在菜单布局文件中设置,您可以重写您的代码,如:
int positionOfMenuItem = 0; //or any other postion
MenuItem item = menu.getItem(positionOfMenuItem);
SpannableString s = new SpannableString(item.getTitle());
s.setSpan(new AlignmentSpan.Standard(Alignment.ALIGN_CENTER), 0, s.length(), 0);
item.setTitle(s);
如果你在夸大了菜单后,在你的Activity的覆盖onCreateOptionsMenu
方法中调用它,这是有效的。
如果您打算对菜单的所有项目执行此操作,则需要对它们进行循环。就像是:
for(int i = 0; i < menu.size(); i++) {
MenuItem item = menu.getItem(i);
SpannableString s = new SpannableString(item.getTitle());
s.setSpan(new AlignmentSpan.Standard(Alignment.ALIGN_CENTER), 0, s.length(), 0);
item.setTitle(s);
}
我认为将这个设置在一个自己的布局中,正如Gavin在他的回答中指出的那样,它会更整洁,但是代价是无法使用Android的现成菜单。