很多项目都用到类似左侧滑动菜单的效果,比如facebook,evernote,VLC for android等等,这很酷

源代码可以从GitHub的https://github.com/jfeinstein10/slidingmenu上下载。

移植过程中会用到Actionbarsherlock这个项目,去http://actionbarsherlock.com/download.html下载。(两个下的都是最新版本)


步骤:

1.将下载的Actionbarssherlock中/library下的文件解压到workspace(你的项目目录),改项目名称为Actionbarssherlock,从eclipse中操作new->project->Android Project from Existing Code将项目添加进去,target改为api14以上。

2.将下载的slidingmenu中/library解压到workspace(你的项目目录),改名SlidingMenu,import该项目,右键->properties->android->api14以上。或者打开project.properties:target=Google Inc.:Google APIs:14或更高,add Actionbarssherlock为project library,邮件->properties->android->Libraty add...

3.这样SlidingMenu就可以用在自己项目中了。让我们来运行例子。解压slidingmenu中/example。import该项目,设置api14或更高,并add你的SlidingMenu为example的project library。运行看看效果。2.1以上的系统都可以运行。



虽然是开源项目,但使用过程中还是可能会出现各种问题:

一、修复SlidingMenu library project里出现的错误

  • Console error:Unable to resolve target ‘Google Inc.:Google APIs:16.

    Fix:进入Properties检查Target sdk是否选择了Google APIs.

  • List of errors:ACTION_POINTER_INDEX_MASK cannot be resolved android.
    HONEYCOMB cannot be resolved or is not a field
    LAYER_TYPE_HARDWARE cannot be resolved or is not a field
    LAYER_TYPE_NONE cannot be resolved or is not a field
    MATCH_PARENT cannot be resolved or is not a field
    The method getLayerType() is undefined for the type View
    The method setLayerType(int, null) is undefined for the type View

    Fix:manifest里面的min sdk version 改为你当前用到的sdk版本,7以上.

二、修复example project里出现的错误

  • Console error:Found 2 versions of android-support-v4.jar in the dependency list,but not all the versions are identical (check is based on SHA-1 only at this time). Jar mismatch! Fix your dependencies

    Fix:这是由于jar包版本不一致导致的,检查SlidingMenu和Actionbarsherlock中的\libs文件夹里的哪个android-support-v4.jar版本比较新,用新的替换掉其中的老版本. 如果错误还是会出现,就clean项目并重启eclipse.

  • List of errors:The method getSupportActionBar() is undefined for the type BaseActivity
    The method getSupportMenuInflater() is undefined for the type BaseActivity
    The method onCreateOptionsMenu(Menu) of type BaseActivity must override or implement a supertype method
    The method onOptionsItemSelected(MenuItem) in the type Activity is not applicable for the arguments
    The method onOptionsItemSelected(MenuItem) of type BaseActivity must override or implement a supertype method
    The method onOptionsItemSelected(MenuItem) of type ResponsiveUIActivity must override or implement a supertype method

    Fix:打开SlidingMenu library project里SlidingFragmentActivity这个类并在声明前添加以下代码:

    [java] view plain copy
    1. importcom.actionbarsherlock.app.SherlockFragmentActivity;

    然后,将下面这个父类:

    [java] view plain copy
    1. publicclassSlidingFragmentActivityextendsFragmentActivityimplementsSlidingActivityBase{

    换成Actionbarsherlock里的另外一个父类:

    [java] view plain copy
    1. publicclassSlidingFragmentActivityextendsSherlockFragmentActivityimplementsSlidingActivityBase{

    如果错误还是会出现,就clean项目并重启eclipse.


    没错误以后运行出下面效果:


更多相关文章

  1. PhoneGap是什么?
  2. Android(安卓)studio升级3.0.1遇到的坑及Android(安卓)Studio 3.
  3. android:SQLiteOpenHelper 与 greenDao 数据库操作
  4. is 32-bit instead of 64-bit动态库错误分析
  5. Android项目清单文件
  6. Android(安卓)Studio运行项目提示Edit configuration
  7. AOSP: 导入项目报错
  8. Android遇到的错误记录
  9. Android(安卓)Service教程

随机推荐

  1. Android配置build.gradle自动化编译signi
  2. Android 下的 bolts tasks
  3. Android桌面二:Android桌面widget
  4. Android(安卓)Studio 使用Gradle引入第三
  5. 【Android实战决】Android沉浸式状态栏实
  6. Android,百度,云知声tts总结
  7. Pure Android
  8. UI 初步介绍
  9. Android 技术专题系列之十七 -- volume 服
  10. 高焕堂——Android框架底层结构知多少?