用新版本的SDK可以自动生成一个简单的NavigationDrawer项目
如果SDK版本太新的问题,运行的效果可能会不如人愿,如下图
由于项目中用的appcompat版本是 com.android.support:appcompat-v7:22.0.0
IDE自动导入的却是v4的ActionBarDrawerToggle,所以会出现上面的三条杆居中的问题。
import android.support.v4.app.ActionBarDrawerToggle;
IDE中报出v4的ActionBarDrawerToggle已经过期,如图
把v4改为v7就可以了
import android.support.v7.app.ActionBarDrawerToggle;
改成v7会报一个错误:
mDrawerToggle = new ActionBarDrawerToggle(
getActivity(), /* host Activity */
mDrawerLayout, /* DrawerLayout object */
R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */
R.string.navigation_drawer_open, /* "open drawer" description for accessibility */
R.string.navigation_drawer_close /* "close drawer" description for accessibility */
)
因为v7的构造函数没有传入图标了,删掉R.drawable.ic_drawer, 就可以了。这时候运行就可以发现,原来的R.drawable.ic_drawer变成了酷炫的动画——箭头与三条杆之间切换的动画。
如果一定要下面这张图片的效果的话,是要把appcompat版本强行换为v4的
如果是学习代码的话,建议还是学习官方的,不过SlidingMenu有很多功能,比如滑出菜单时控制后面的背景动不动,动多少,貌似Navigation Drawer的背景不能动的。开源项目被官方API取代是趋势,因为大家都觉得官方的接口用着放心嘛,但开源项目可能更灵活。