以编程方式显示 NavigationView MenuItems 全息指示器

show NavigationView MenuItems holo indicator programmatically

我有一个导航视图,我根据从 API 请求获得的响应动态填充它。所以我必须以编程方式设计大部分菜单项。

我的目标是在选中菜单项时在左侧添加指示器(黄色垂直条),如下图所示:

这是我到目前为止的代码:

.xml

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    app:itemIconTint="@drawable/drawer_item"
    app:itemTextColor="@drawable/drawer_item"
    app:itemBackground="@drawable/background_item"/>

.java

for (SettingsMenuItem item : items) {

                if (!item.getMenu().isEmpty()) {

                        span = new SpannableString(subItem.getTitle());
                        span.setSpan(new AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER), 0, span.length(), 0);

                        menu.add(NONE,NONE, items.indexOf(subItem), span).setCheckable(true).setChecked(false);;
                    }
}
        menu.getItem(selectedItemID).setChecked(true);

尝试为黄色竖条创建自定义视图,喜欢

<View
    android:layout_width="5dp"
    android:layout_height="match_parent"
    android:background="@color/yellow"/>

并将重力设置为父左侧。还要在SharedPreference的某处维护点击菜单的状态,以恢复点击菜单的状态。