【问题标题】:how to make navigation drawer menu items center in android如何在android中使导航抽屉菜单项居中
【发布时间】:2019-07-09 21:59:01
【问题描述】:

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

我在activity main 中编写了这段代码,但我不确定这段代码中的settingsItemTitle是什么,所以工作室给了我错误

无法解析符号“settingsItemTitle”

如果有人知道请帮帮我

【问题讨论】:

    标签: android navigation-drawer menuitem text-align


    【解决方案1】:

    不要使用MenuItem(我猜还有NavigationView),只需对抽屉内容使用垂直LinearLayout。您可以随意设置样式。

    【讨论】:

    • 应该是一个 CharSequence(或 String),表示项目的标题。
    • 默认情况下,如果它是一个导航抽屉活动,它将在 android studio 中是什么?
    • 这就是您在 XML 中为该 MenuItem 赋予的任何标题。例如,在屏幕截图中,一些 settingsItemTitles 是 Profile、All Appointments 和 Reports。
    • 它不是只有一个,默认只有6个菜单项
    • 这就是您使用 positionOfMenuItem 获取 menuItem 位置的原因。在尝试任何这些之前,您真的应该学习一些 Java:udacity.com/course/java-programming-basics--ud282
    【解决方案2】:

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

    Custom navigation drawer

    【讨论】:

      【解决方案3】:

      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 菜单。

      【讨论】:

        猜你喜欢
        • 2013-06-13
        • 2015-11-04
        • 1970-01-01
        • 2020-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-08
        • 1970-01-01
        相关资源
        最近更新 更多