teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

final修飾子の追加(旧Java用)

2020/02/20 11:47

投稿

kakajika
kakajika

スコア3133

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  > 1.NavigationViewで表示しているアイテムと同じアイテムを選択したら何もしない
2
2
 
3
- NavigationUIの[ソース](https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-master-dev/navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java?source=post_page---------------------------%2F%2F&autodive=0%2F#437)を見てみましたが、この中にMenuItemの選択チェック処理を挟むのはちょっと厳しそうなので、NavigationViewを拡張してアイテムの再選択時には通知しないクラスを実装するのが良さそうです。関連する[Issue](https://issuetracker.google.com/issues/124398826)でもBottomNavigationViewのような機能が必要かも?という話になっています。
3
+ NavigationUIの[ソース](https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-master-dev/navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java?source=post_page---------------------------%2F%2F&autodive=0%2F#437)を見てみましたが、この中にMenuItemの選択チェック処理を挟むのはちょっと厳しそうなので、NavigationViewを拡張してアイテムの再選択時には通知しないクラスを実装するのが良さそうです。関連する[Issue](https://issuetracker.google.com/issues/124398826)でもBottomNavigationViewのような機能(OnNavigationItemReselectedListener)が必要かも?という話になっています。
4
4
  以下のようなクラスを実装してNavigationViewの代わりに使ってみてください。
5
5
 
6
6
  ```java
@@ -8,7 +8,7 @@
8
8
  // コンストラクタ...(略)
9
9
 
10
10
  @Override
11
- public void setNavigationItemSelectedListener(@Nullable OnNavigationItemSelectedListener listener) {
11
+ public void setNavigationItemSelectedListener(final @Nullable OnNavigationItemSelectedListener listener) {
12
12
  if (listener != null) {
13
13
  super.setNavigationItemSelectedListener(new OnNavigationItemSelectedListener() {
14
14
  @Override

1

説明を追加

2020/02/20 11:46

投稿

kakajika
kakajika

スコア3133

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  > 1.NavigationViewで表示しているアイテムと同じアイテムを選択したら何もしない
2
2
 
3
- NavigationUIの[ソース](https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-master-dev/navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java?source=post_page---------------------------%2F%2F&autodive=0%2F#437)を見てみましたが、この中に処理を挟むのはちょっと厳しそうなので、NavigationViewを拡張してアイテムの再選択時には通知しないクラスを実装するのが良さそうです。関連する[Issue](https://issuetracker.google.com/issues/124398826)でもBottomNavigationViewのような機能が必要かも?という話になっています。
3
+ NavigationUIの[ソース](https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-master-dev/navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java?source=post_page---------------------------%2F%2F&autodive=0%2F#437)を見てみましたが、この中にMenuItemの選択チェック処理を挟むのはちょっと厳しそうなので、NavigationViewを拡張してアイテムの再選択時には通知しないクラスを実装するのが良さそうです。関連する[Issue](https://issuetracker.google.com/issues/124398826)でもBottomNavigationViewのような機能が必要かも?という話になっています。
4
4
  以下のようなクラスを実装してNavigationViewの代わりに使ってみてください。
5
5
 
6
6
  ```java