如何在android中制作导航抽屉菜单项中心

问题描述 投票:-1回答:2

首先,我看到一个堆栈线程关于相同的问题,但它不完全为我工作可能是因为我是一个新手,如果有人知道请帮助我,我在导航抽屉现在我想让菜单项对齐在中心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);

我在活动主编写了这段代码,我不确定settingsItemTitlein这段代码是什么让工作室给我错误

无法解析符号'settingsItemTitle'

如果有人知道请帮助我

android navigation-drawer menuitem text-align
2个回答
0
投票

而不是使用MenuItem(以及我猜,NavigationView),只需使用垂直LinearLayout作为抽屉内容。你将能够以任何你想要的方式设计它。


0
投票

您可以尝试开发一个自定义抽屉,您可以将菜单项放在中心。

Custom navigation drawer


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);

如果你在夸大了菜单后,在你的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的现成菜单。

© www.soinside.com 2019 - 2024. All rights reserved.