相关疑难解决方法(0)

更改navigationView的单个特定菜单项的背景颜色

我想在导航抽屉里的android菜单中设置所有标题项的背景颜色.我的布局看起来像:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:title="TopItem" android:id="@+id/top_item1"> // Here i want to set the background
    <menu>
      <group>
        <item android:id="@+id/sub_item1"
            android:title="SubItem" /> // Here no background
      </group>
    </menu>
  </item>
  <item android:title="TopItem" android:id="@+id/top_item2">
    <menu>
      <group>
       <item android:id="@+id/sub_item2"
            android:title="SubItem" />
        <item android:id="@+id/sub_item3"
            android:title="SubItem" />
       <item android:id="@+id/sub_item4"
            android:title="SubItem" />
      </group>
    </menu>
</menu>
Run Code Online (Sandbox Code Playgroud)

结果应该看起来像:

在此输入图像描述

我发现我可以使用以下内容设置文本颜色:

MenuItem menuItem = navigationView.getMenu().findItem(R.id.menu_item);
SpannableString s = new SpannableString(menuItem.getTitle());
s.setSpan(new TextAppearanceSpan(this, R.style.TextAppearance), 0, s.length(), 0);

if (menuItem.getItemId()==R.id.nav_targets){            
  menuItem.setTitle(s); }
Run Code Online (Sandbox Code Playgroud)

但是我如何设置填充背景颜色?

java navigation android android-layout navigation-drawer

14
推荐指数
2
解决办法
1634
查看次数