以编程方式显示NavigationView MenuItems holo指标

时间:2017-12-20 10:08:52

标签: android android-layout navigation-drawer android-drawable

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

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

enter image description here

以下是我的代码:

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

1 个答案:

答案 0 :(得分:1)

尝试为黄色竖条创建自定义视图,例如

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

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