Android棒棒糖 - 虽然将spinBars设置为true,但汉堡并没有动画效果

时间:2015-05-18 05:23:50

标签: android

这是我的styles.xml:

<resources>
    <style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
        <item name="spinBars">true</item>
        <item name="color">@android:color/white</item>
    </style>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/sunshine_blue</item>
        <item name="colorPrimaryDark">@color/sunshine_dark_blue</item>
        <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
        <item name="windowActionBar">false</item> <!-- Remove the default action bar -->
        <item name="windowNoTitle">true</item>
    </style>
</resources>

设置抽屉切换的代码:

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.setTitle("sometitle");
    toolbar.setTitleTextColor(0xFFFFFFFF);
    toolbar.inflateMenu(R.menu.menu_main);
    setSupportActionBar(toolbar);

    DrawerLayout mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle mToggle = new ActionBarDrawerToggle(this, mDrawer, toolbar, R.string.drawer_open, R.string.drawer_close);
    mToggle.syncState();

现在很多关于SO的帖子都提到这是关键部分。但即使我实现了它,工具栏上的汉堡包图标也没有动画效果。只是让你知道我的导航抽屉的整个实现工作完美,只是图标没有动画......

1 个答案:

答案 0 :(得分:1)

添加如下所示的代码,

mDrawerToggle.setDrawerIndicatorEnabled(true);
mDrawerLayout.setDrawerListener(mDrawerToggle);

并在oncreate方法之后,

@Override
protected void onPostCreate(Bundle savedInstanceState)
{
    super.onPostCreate(savedInstanceState);
    mDrawerToggle.syncState();
}

无需在切换上应用任何样式,此代码将解决此问题。 希望它会有所帮助。