У меня есть NavigationView
с обычным Menu
внутри него. Я добавляю два элемента: один регулярный элемент с видом действия, содержащим SwitchCompat
в определении xml и подменю с несколькими элементами из кода. Это прекрасно работает.SwitchCompat не анимирует правильно в меню NavigationView при скрытии SubMenu
Я использую setOnCheckedChangeListener
на коммутаторе, чтобы проверить, когда его состояние меняется, и если он установлен на I скрыть подменю (catMenu
):
final Menu naviMenu = navi.getMenu(); // Already contains the switch element in XML definition
final SubMenu catMenu = naviMenu.addSubMenu("Kategoriat");
final SwitchCompat onlyfavsw = (SwitchCompat)naviMenu.findItem(R.id.nav_onlyfavs).getActionView();
onlyfavsw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b)
{
catMenu.getItem().setVisible(!b);
}
});
Сокрытие/показ работает отлично, за исключением SwitchCompat
не анимируется. Он меняет цвет, но переключатель не перемещается вправо. Я могу вручную поместить его туда, но не вернуться.
То же самое происходит, если я удаляю подменю в меню внутри события. Поэтому я думаю, что любое вмешательство в меню вызывает проблемы с анимацией.
Я делаю что-то неправильно или это ошибка в библиотеках совместимости? Любой другой способ обработки скрытия подменю на основе выбора?
Я использую версию 23.1.1 из AppCompat-v7