以编程方式显示 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的某处维护点击菜单的状态,以恢复点击菜单的状态。
我有一个导航视图,我根据从 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的某处维护点击菜单的状态,以恢复点击菜单的状态。