首先,我看到一个堆栈线程针对同一问题,但它对我而言并不完全有用,可能是因为我是新手,如果有人知道请帮助我,我现在在导航抽屉中,我想使菜单项对齐位于中心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
是什么,所以工作室会给我错误
无法解析符号“ settingsItemTitle”
如果有人知道,请帮助我
答案 0 :(得分:0)
与其使用key2
(我猜是value
),不如对抽屉内容使用垂直的LinearLayout。您将可以按照自己的方式设置样式。
答案 1 :(得分:0)
您可以尝试开发自定义抽屉,将菜单项放在中间。
答案 2 :(得分:0)
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);
如果在放大菜单后用活动的覆盖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菜单为代价的。