2
私はAPIリクエストから得た応答に従って動的に移入するナビゲーションビューを持っています。だから私はメニュー項目の設計のほとんどをプログラムで行う必要があります。show NavigationView MenuItemsホロインジケータプログラムで
私の目的は、メニュー項目が、この絵のように、チェックされている場合、左側にインジケータ(黄色の縦ストリップ)を追加することです。ここでは
は、今までの私のコードです:
の.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);
お寄せいただきありがとうございます。メニュー項目にこのビューをプログラムで追加するにはどうすればよいですか?重力を左に設定する方法は? – M20
あなたが言及したスクリーンショットの中に複数のものがあるので、私はSettingsMenuItemの代わりにカスタム引き出しレイアウトを作成することを提案します。カスタム引き出しレイアウトを作成するには、NavigationViewを完全に削除し、スクリーンショットで説明した上記のレイアウトを作成し、コントロールをコードの背後に初期化します。これは明らかです。私はいくつかのコードスニペットを投稿することを知らせていない場合 –