最近学习了一下滑动菜单开源框架SlidingMenu,下面做一下学习总结。
首先下载需要的包
解压后,把Libray加载到项目中。
接下来,新建我们自己的项目,然后把Libray加入到我们项目中
这样,我们就完成了库的导入。项目中,会出现这个
但是这个时候,会报个错。
[2015-01-12 11:06:59 - 新闻2] Found 2 versions of android-support-v4.jar in the dependency list, [2015-01-12 11:06:59 - 新闻2] but not all the versions are identical (check is based on SHA-1 only at this time). [2015-01-12 11:06:59 - 新闻2] All versions of the libraries must be the same at this time. [2015-01-12 11:06:59 - 新闻2] Versions found are: [2015-01-12 11:06:59 - 新闻2] Path: D:\Code\Android_Project\My_WYXW\library\libs\android-support-v4.jar [2015-01-12 11:06:59 - 新闻2] Length: 385685 [2015-01-12 11:06:59 - 新闻2] SHA-1: 48c94ae70fa65718b382098237806a5909bb096e [2015-01-12 11:06:59 - 新闻2] Path: D:\Code\Android_Project\My_WYXW\新闻2\libs\android-support-v4.jar [2015-01-12 11:06:59 - 新闻2] Length: 758727 [2015-01-12 11:06:59 - 新闻2] SHA-1: efec67655f6db90757faa37201efcee2a9ec3507 [2015-01-12 11:06:59 - 新闻2] Jar mismatch! Fix your dependencies
这个错很好解决,是因为我们导入的包里面有一个...-v4.jar包,而我们新建的程序里也有一个,我们只需要用导入的library里的v4.jar去覆盖我们自己项目中的v4.jar就好了。
==========================================================
下面正式开始SlidingMenu的demo
首先,让我们的activity去继承SlidingFragmentActivity。
public class MainActivity extends SlidingFragmentActivity { ... }
这时候,会报2个错。
错误2的解决方式是把protected修饰符改写成public
错误1的解决方式是通过配置来解决。
这样错误就解决了。
接下来就是去设置SlidingMenu的布局,我们用FrameLayout布局
public class MainActivity extends SlidingFragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置SlidingMenu的布局,我们用FrameLayout布局 setBehindContentView(R.layout.menu_frame); setContentView(R.layout.activity_main); } }
然后去设置滑动菜单的一系列属性
// 1.得到滑动菜单对象 SlidingMenu sm = getSlidingMenu(); // 2.设置滑动菜单在左边出来还是在最右边出来 sm.setMode(SlidingMenu.LEFT); // sm.setMode(SlidingMenu.RIGHT); // 3.设置滑动菜单出来以后,内容也显示的剩余宽度 sm.setBehindWidthRes(R.dimen.slidingmenu_offset); // 4.设置滑动菜单的阴影,设置阴影,阴影需要在开始,特别暗,慢慢的变淡 sm.setShadowDrawable(R.drawable.shadow); // 5.设置阴影的宽度 sm.setShadowWidth(R.dimen.shadow_width); // 6.设置滑动范围 sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); // 全屏滑动 // sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); 边缘滑动 // sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE); 不能滑动
运行的时候, 会出现ClassNotFoundException MainActivity类没有找到。
这个解决方案是换一下sdk,我本来用的17,换成16,重新运行就好了。下面来看一下运行结果。
ok了,搞定。