Fixed
Status Update
Comments
gg...@google.com <gg...@google.com>
il...@google.com <il...@google.com>
yb...@google.com <yb...@google.com>
at...@gmail.com <at...@gmail.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit e005db789e4c6b6c75fb8ca03a0c4e326868fb91
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Sep 02 14:20:41 2020
Move nav_default animation out of animation sets
All of the nav_default animations are simple fades and do not need to be
inside of a animation set. Moving them out also ensures that if they are
placed in an additional set (i.e. like the new fragment state manager
does to listen for when the animation finishes) they will not flash.
Bug: 167430145
Test: Tested in sample app
Change-Id: I071e922a52301863ba2461ff05b60bb64566430c
M navigation/navigation-ui/src/main/res/anim/nav_default_enter_anim.xml
M navigation/navigation-ui/src/main/res/anim/nav_default_exit_anim.xml
M navigation/navigation-ui/src/main/res/anim/nav_default_pop_enter_anim.xml
M navigation/navigation-ui/src/main/res/anim/nav_default_pop_exit_anim.xml
https://android-review.googlesource.com/1418719
Branch: androidx-master-dev
commit e005db789e4c6b6c75fb8ca03a0c4e326868fb91
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Sep 02 14:20:41 2020
Move nav_default animation out of animation sets
All of the nav_default animations are simple fades and do not need to be
inside of a animation set. Moving them out also ensures that if they are
placed in an additional set (i.e. like the new fragment state manager
does to listen for when the animation finishes) they will not flash.
Bug: 167430145
Test: Tested in sample app
Change-Id: I071e922a52301863ba2461ff05b60bb64566430c
M navigation/navigation-ui/src/main/res/anim/nav_default_enter_anim.xml
M navigation/navigation-ui/src/main/res/anim/nav_default_exit_anim.xml
M navigation/navigation-ui/src/main/res/anim/nav_default_pop_enter_anim.xml
M navigation/navigation-ui/src/main/res/anim/nav_default_pop_exit_anim.xml
ma...@gmail.com <ma...@gmail.com> #3
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
https://android-review.googlesource.com/1424849
Branch: androidx-master-dev
commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
at...@gmail.com <at...@gmail.com> #4
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 9c1b0badcfb5fa6d11c1ec64c224c6be08b9211d
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 16:18:20 2020
Fix resource tracking for navigation UI
We need to move the public navigation UI resources from the legacy
res-public director to the supported values/public.xml file to ensure
that the resources are being properly tracked.
This change also marks the default nav animations are deprecated in
favor of animators.
Test: Tested in sample apps
Bug: 167430145
Change-Id: Ife64d85b280d6ed1161efe503885f807066b710c
M navigation/navigation-ui/api/res-current.txt
D navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/values/public.xml
https://android-review.googlesource.com/1419330
Branch: androidx-master-dev
commit 9c1b0badcfb5fa6d11c1ec64c224c6be08b9211d
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 16:18:20 2020
Fix resource tracking for navigation UI
We need to move the public navigation UI resources from the legacy
res-public director to the supported values/public.xml file to ensure
that the resources are being properly tracked.
This change also marks the default nav animations are deprecated in
favor of animators.
Test: Tested in sample apps
Bug: 167430145
Change-Id: Ife64d85b280d6ed1161efe503885f807066b710c
M navigation/navigation-ui/api/res-current.txt
D navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/values/public.xml
il...@google.com <il...@google.com> #5
This is fixed and will be available in the Navigation 2.3.1
release.
ma...@gmail.com <ma...@gmail.com> #6
Project: platform/frameworks/support
Branch: snap-temp-L34200000699848945
commit 9a352b5633b8042fdb9e3faede5b2ed09105c4f2
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
(cherry picked from commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe)
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
https://android-review.googlesource.com/1436744
Branch: snap-temp-L34200000699848945
commit 9a352b5633b8042fdb9e3faede5b2ed09105c4f2
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
(cherry picked from commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe)
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
il...@google.com <il...@google.com>
il...@google.com <il...@google.com> #7
Project: platform/frameworks/support
Branch: snap-temp-L04700000699849955
commit 1546a28093a311051eb3c34309fbed3229c5e648
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
(cherry picked from commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe)
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
https://android-review.googlesource.com/1436749
Branch: snap-temp-L04700000699849955
commit 1546a28093a311051eb3c34309fbed3229c5e648
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
(cherry picked from commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe)
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
ap...@google.com <ap...@google.com> #8
Project: platform/frameworks/support
Branch: snap-temp-L69500000699869549
commit 0330f7a7a613a290675d78b6e2d0f78cf15521d6
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
(cherry picked from commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe)
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
https://android-review.googlesource.com/1436912
Branch: snap-temp-L69500000699869549
commit 0330f7a7a613a290675d78b6e2d0f78cf15521d6
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
(cherry picked from commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe)
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
ma...@gmail.com <ma...@gmail.com> #9
Project: platform/frameworks/support
Branch: snap-temp-L31300000699869852
commit ae16020f57114d8e9f07544dc57e9c00c4153d26
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
(cherry picked from commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe)
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
https://android-review.googlesource.com/1436916
Branch: snap-temp-L31300000699869852
commit ae16020f57114d8e9f07544dc57e9c00c4153d26
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
(cherry picked from commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe)
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
at...@gmail.com <at...@gmail.com> #10
Project: platform/frameworks/support
Branch: snap-temp-L53700000699921463
commit adb93346bcf4e8b019ec009e499e85536c223415
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
(cherry picked from commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe)
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
https://android-review.googlesource.com/1436919
Branch: snap-temp-L53700000699921463
commit adb93346bcf4e8b019ec009e499e85536c223415
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
(cherry picked from commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe)
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
il...@google.com <il...@google.com> #11
Project: platform/frameworks/support
Branch: snap-temp-L25200000699921867
commit 868747fcf7ed98039c7a75125a540b348e1b8e9f
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
(cherry picked from commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe)
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
https://android-review.googlesource.com/1436923
Branch: snap-temp-L25200000699921867
commit 868747fcf7ed98039c7a75125a540b348e1b8e9f
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
(cherry picked from commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe)
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
at...@gmail.com <at...@gmail.com> #12
Project: platform/frameworks/support
Branch: snap-temp-L07700000699933785
commit 57ed08fa1034139dbb2bbabd6d4b87299481bd4a
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
(cherry picked from commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe)
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
https://android-review.googlesource.com/1436928
Branch: snap-temp-L07700000699933785
commit 57ed08fa1034139dbb2bbabd6d4b87299481bd4a
Author: Jeremy Woods <jbwoods@google.com>
Date: Fri Sep 11 15:58:27 2020
Add nav default animator resources
Animators are recommeneded over Animations for doing effects in fragment
and Navigation. We need to make default animator resources for
Navigation.
Test: Tested in sample apps
Bug: 167430145
Change-Id: I904d78268d8b8574c799ae1b0f5887e518fdb5f6
(cherry picked from commit 1e9ed84322fddd9228df1f96bc8cb76748e0a4fe)
M navigation/navigation-ui/src/main/java/androidx/navigation/ui/NavigationUI.java
M navigation/navigation-ui/src/main/res-public/values/public_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_exit_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_enter_anim.xml
A navigation/navigation-ui/src/main/res/animator/nav_default_pop_exit_anim.xml
at...@gmail.com <at...@gmail.com> #13
This is what would work if you use a simple bottom sheet layout with a ConstraintLayout as root view as pointed out in comment #3 :
if (parent instanceof DrawerLayout) {
((DrawerLayout) parent).closeDrawer(navigationView);
} else {
BottomSheetBehavior bottomSheetBehavior =
BottomSheetBehavior.from((View) navigationView.getParent().getParent());
if (bottomSheetBehavior != null) {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
}
}
but only
BottomSheetBehavior bottomSheetBehavior =
BottomSheetBehavior.from(navigationView);
would expect, that the navigationView is a direct child of a CoordinatorLayout and would have the app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior" attribute. That can't work or did I miss something?
if (parent instanceof DrawerLayout) {
((DrawerLayout) parent).closeDrawer(navigationView);
} else {
BottomSheetBehavior bottomSheetBehavior =
BottomSheetBehavior.from((View) navigationView.getParent().getParent());
if (bottomSheetBehavior != null) {
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
}
}
but only
BottomSheetBehavior bottomSheetBehavior =
BottomSheetBehavior.from(navigationView);
would expect, that the navigationView is a direct child of a CoordinatorLayout and would have the app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior" attribute. That can't work or did I miss something?
il...@google.com <il...@google.com> #14
Yeah, we should avoid BottomSheetBehavior.from()'s overzealous throwing of exceptions and handle cases like BottomSheetDialogFragment where the NavigationView is a few layers below the CoordinatorLayout.
ap...@google.com <ap...@google.com> #15
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 4fb1acaf8ee002979bc161e362c1e83f89195205
Author: Ian Lake <ilake@google.com>
Date: Tue Sep 18 13:38:07 2018
Fix NavigationUI for use with BottomSheetDialogFragment
Replace using BottomSheetBehavior.from() which
throws IllegalArgumentExceptions to a safe
method that searches up the view hierarchy
for a CoordinatorLayout to determine if the
NavigationView is within a bottom sheet.
Test: example added to the integration-tests/testapp
BUG: 112158843
Change-Id: I774991ef1b23085e075e6bac6fa820ee3e001a31
M navigation/integration-tests/testapp/build.gradle
M navigation/integration-tests/testapp/src/main/java/androidx/navigation/testapp/HelpActivity.kt
M navigation/integration-tests/testapp/src/main/res/layout/activity_help.xml
A navigation/integration-tests/testapp/src/main/res/layout/bottom_bar_menu.xml
M navigation/ui/src/main/java/androidx/navigation/ui/NavigationUI.java
https://android-review.googlesource.com/760505
https://goto.google.com/android-sha1/4fb1acaf8ee002979bc161e362c1e83f89195205
Branch: androidx-master-dev
commit 4fb1acaf8ee002979bc161e362c1e83f89195205
Author: Ian Lake <ilake@google.com>
Date: Tue Sep 18 13:38:07 2018
Fix NavigationUI for use with BottomSheetDialogFragment
Replace using BottomSheetBehavior.from() which
throws IllegalArgumentExceptions to a safe
method that searches up the view hierarchy
for a CoordinatorLayout to determine if the
NavigationView is within a bottom sheet.
Test: example added to the integration-tests/testapp
BUG: 112158843
Change-Id: I774991ef1b23085e075e6bac6fa820ee3e001a31
M navigation/integration-tests/testapp/build.gradle
M navigation/integration-tests/testapp/src/main/java/androidx/navigation/testapp/HelpActivity.kt
M navigation/integration-tests/testapp/src/main/res/layout/activity_help.xml
A navigation/integration-tests/testapp/src/main/res/layout/bottom_bar_menu.xml
M navigation/ui/src/main/java/androidx/navigation/ui/NavigationUI.java
il...@google.com <il...@google.com> #16
Thanks for catching the oversight! The new code should work considerably better for other bottom sheet cases without the IllegalArgumentExceptions :)
Description
The Navigation Component has this very useful function to sync up menu items from a NavigationView with the NavController. It makes sure that the selected item is checked, can close the navigation drawer on selection if a DrawerLayout is used, or set the title of an ActionBar/Toolbar according to the current destination.
With the addition of the bottom app bar in Material Design we've also begun using the bottom navigation drawer (
public class BottomDrawerFragment extends BottomSheetDialogFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_bottom_drawer, container, false);
NavigationView navigationView = view.findViewById(R.id.bottom_drawer_navigation);
NavigationUI.setupWithNavController(navigationView, Navigation.findNavController(getActivity(), R.id.nav_host_fragment));
return view;
}
}
This works well, but because NavigationUI currently doesn't dismiss the BottomSheetDialogFragment when a menu item has been selected like it closes the DrawerLayout, the bottom navigation drawer remains open and needs to be dismissed in another way (which comes with additional code overhead and issues).
Since AndroidX is now part of AOSP, I took a look at the implementation and I think that support for this could be added with two lines of code (see '+' characters at beginning of lines below) by doing for the DialogFragment what is already done for the DrawerLayout (excerpt from androidx-master-dev/navigation/ui/src/main/java/androidx/navigation/ui/NavigationUI.java).
public static void setupWithNavController(@NonNull final NavigationView navigationView,
@NonNull final NavController navController) {
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
boolean handled = onNavDestinationSelected(item, navController, true);
if (handled) {
ViewParent parent = navigationView.getParent();
if (parent instanceof DrawerLayout) {
((DrawerLayout) parent).closeDrawer(navigationView);
+ } else if (parent instanceof BottomSheetDialogFragment) {
+ ((DialogFragment) parent).dismiss();
}
}
return handled;
}
});
navController.addOnNavigatedListener(new NavController.OnNavigatedListener() {
@Override
public void onNavigated(@NonNull NavController controller,
@NonNull NavDestination destination) {
Menu menu = navigationView.getMenu();
for (int h = 0, size = menu.size(); h < size; h++) {
MenuItem item = menu.getItem(h);
item.setChecked(matchDestination(destination, item.getItemId()));
}
}
});
}
The most active owner of the Navigation Component is Ian Lake and it he's been adding support for more and more UI components to the NavigationUI class in the past months, so I think he's the person to talk to about this. Assuming this doesn't introduce any issues, he could probably get it done in a couple of minutes.
Alternatively, I could implement this and the accompanying test myself, contribute it and try to get it reviewed.