diff --git a/lib/java/com/google/android/material/search/SearchView.java b/lib/java/com/google/android/material/search/SearchView.java index 7124da52878..6a747ea252b 100644 --- a/lib/java/com/google/android/material/search/SearchView.java +++ b/lib/java/com/google/android/material/search/SearchView.java @@ -263,12 +263,16 @@ protected void onAttachedToWindow() { super.onAttachedToWindow(); MaterialShapeUtils.setParentAbsoluteElevation(this); + TransitionState state = getCurrentTransitionState(); + updateModalForAccessibility(state); + updateListeningForBackCallbacks(state); } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); + setModalForAccessibility(/* isSearchViewModal= */ false); backOrchestrator.stopListeningForBackCallbacks(); } @@ -810,11 +814,7 @@ private void setTransitionState( } if (updateModalForAccessibility) { - if (state == TransitionState.SHOWN) { - setModalForAccessibility(true); - } else if (state == TransitionState.HIDDEN) { - setModalForAccessibility(false); - } + updateModalForAccessibility(state); } TransitionState previousState = currentTransitionState; @@ -827,6 +827,14 @@ private void setTransitionState( updateListeningForBackCallbacks(state); } + private void updateModalForAccessibility(@NonNull TransitionState state) { + if (state == TransitionState.SHOWN) { + setModalForAccessibility(true); + } else if (state == TransitionState.HIDDEN) { + setModalForAccessibility(false); + } + } + private void updateListeningForBackCallbacks(@NonNull TransitionState state) { // Only automatically handle back if we have a search bar to collapse to, and if back handling // is enabled for the SearchView.