Android SwitchCompat在NavigationView';隐藏子菜单时,单击“打开”菜单
我有一个Android SwitchCompat在NavigationView';隐藏子菜单时,单击“打开”菜单,android,android-appcompat,navigationview,switchcompat,Android,Android Appcompat,Navigationview,Switchcompat,我有一个导航视图,里面有通常的菜单。我添加了两个项:一个常规项和一个包含xml定义中的SwitchCompat的操作视图,以及一个子菜单,其中包含代码中的几个项。这个很好用 我在开关上使用setoncheckedchangedlistener检查其状态何时更改,如果设置为打开,则隐藏子菜单(catMenu): 隐藏/显示功能正常,但开关兼容的动画设置不正确。它会改变颜色,但开关不会移到右侧。我可以手动将其滑到那里,但不能滑回 如果我从事件内的菜单中删除子菜单,也会发生同样的情况。所以我认为对
导航视图
,里面有通常的菜单
。我添加了两个项:一个常规项和一个包含xml定义中的SwitchCompat
的操作视图,以及一个子菜单,其中包含代码中的几个项。这个很好用
我在开关上使用setoncheckedchangedlistener
检查其状态何时更改,如果设置为打开,则隐藏子菜单(catMenu
):
隐藏/显示功能正常,但开关兼容
的动画设置不正确。它会改变颜色,但开关不会移到右侧。我可以手动将其滑到那里,但不能滑回
如果我从事件内的菜单中删除子菜单,也会发生同样的情况。所以我认为对菜单的任何篡改都会导致动画出现问题
我是做错了什么,还是兼容性库中有一个bug?有没有其他方法可以根据选择隐藏子菜单
我使用的是appcompat-v7的23.1.1版,这确实是一个bug。我也有同样的问题。如果我单击开关本身,它会很好地设置动画,但是如果我在NavigationDrawer打开时更改开关状态,则不会显示动画
Android问题跟踪程序条目见此:这似乎确实是一个bug。我也有同样的问题。如果我单击开关本身,它会很好地设置动画,但是如果我在NavigationDrawer打开时更改开关状态,则不会显示动画 有关Android问题跟踪器条目,请参见以下内容:
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);
}
});