У меня есть drawerLayout (support.v4) с navigationView и есть много элементов (как и многие пункты меню). Одновременно с тем, что на экране появляется меньше предметов, некоторые пункты меню приводят к другому меню со многими элементами.Подождите, пока анимация DrawerLayout не будет выполнена
Дело в том, что мой переключатель меню работает нормально, я могу перейти из одного меню в другое, но у меня нет анимации ... Я хочу закрыть ящик, когда выбран элемент, связанный с другим меню и после загрузки меню, чтобы снова открыть его.
Вот мой код:
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem selectedItem) {
mDrawerLayout.closeDrawer(GravityCompat.START);
Log.d(MainActivity.class.getName(), selectedItem.toString());
MobileXMLMenu menu = UserMenu.getInstance().getMenu();
for(int i = 0; i < menu.sizeMenuItems(); i++){
if(menu.getMenuItem(i).getLabel(Utility.retreiveLanguage()).equals(selectedItem.toString())){
Log.d(MainActivity.class.getName(), menu.getMenuItem(i).sizeMenuItems() + "");
if(menu.getMenuItem(i).sizeMenuItems() > 0){
Menu nMenu = navigationView.getMenu();
nMenu.clear();
for(int j = 0; j < menu.getMenuItem(i).sizeMenuItems(); j++){
MobileXMLMenuItem item = menu.getMenuItem(i).getMenuItem(j);
nMenu.add(item.getLabel(Utility.retreiveLanguage())).setIcon(MemberOptionsManager.getInstance().getMenuItemIcon(item.getDecorator()));
}
mDrawerLayout.openDrawer(GravityCompat.START);
isInSubmenu = true;
}
}
}
return false;
}
});
У меня также есть это для моего ActionBarDrawerToggle (не знаю, если это может помочь):
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close){
public void onDrawerClosed(View view){
super.onDrawerClosed(view);
getSupportActionBar().setTitle(mFragment.getFragmentName());
invalidateOptionsMenu();
mDrawerToggle.syncState();
}
public void onDrawerOpened(View drawerView){
super.onDrawerClosed(drawerView);
getSupportActionBar().setTitle("Open");
invalidateOptionsMenu();
mDrawerToggle.syncState();
}
};
Когда я выбираю пункт не ссылаются на какой-либо суб меню, ящик закрывается, но в остальном я не вижу анимации, просто меняется содержимое меню без анимации. Как заставить приложение ждать, пока ящик закрывается, прежде чем изменять содержимое меню?
Спасибо!
Добавить задержку для изменения содержимого меню? Может быть, 200-300 миллисекунд? –
Вам нужно использовать обработчик для этого ... –
Я добавил код, это вам поможет? – dequec64