diff --git a/src/android/support/design/internal/NavigationMenuPresenter.java b/src/android/support/design/internal/NavigationMenuPresenter.java index 55a759443..b89c603a1 100644 --- a/src/android/support/design/internal/NavigationMenuPresenter.java +++ b/src/android/support/design/internal/NavigationMenuPresenter.java @@ -233,6 +233,12 @@ public class NavigationMenuPresenter implements MenuPresenter, AdapterView.OnIte mItemBackground = itemBackground; } + public void setUpdateSuspended(boolean updateSuspended) { + if (mAdapter != null) { + mAdapter.setUpdateSuspended(updateSuspended); + } + } + private class NavigationMenuAdapter extends BaseAdapter { private static final String STATE_CHECKED_ITEMS = "android:menu:checked"; @@ -432,6 +438,10 @@ public class NavigationMenuPresenter implements MenuPresenter, AdapterView.OnIte } } + public void setUpdateSuspended(boolean updateSuspended) { + mUpdateSuspended = updateSuspended; + } + } /** diff --git a/src/android/support/design/widget/NavigationView.java b/src/android/support/design/widget/NavigationView.java index 02dfa3ce2..e3a626eb6 100644 --- a/src/android/support/design/widget/NavigationView.java +++ b/src/android/support/design/widget/NavigationView.java @@ -207,7 +207,10 @@ public class NavigationView extends ScrimInsetsFrameLayout { * @param resId ID of a menu resource to inflate */ public void inflateMenu(int resId) { + mPresenter.setUpdateSuspended(true); getMenuInflater().inflate(resId, mMenu); + mPresenter.setUpdateSuspended(false); + mPresenter.updateMenuView(false); } /**