android开源项目---SlidingMenu环境的搭建与使用

来源:互联网 发布:单元格数据拆分 编辑:程序博客网 时间:2024/06/05 09:43

一、项目概述

目前在APP中主页侧滑菜单,使用的很多。前端时间看到网上有个SlidingMenu这个开源项目,做侧滑菜单很是强大。就好好学习了一下,并把学习成果要到项目中,现在就和大家分享一下我对于SlidingMenu开源项目的学习成果。项目下载地址:https://github.com/njupt1012010503/SlidingMenuTest/

效果如下:



二、搭建环境

我们使用SlidingMenu这个开源项目,需要现在githup上先下载两个依赖包。


1、第一个是Slingmenu开源项目的依赖包ActionBarSherlock。下载地址为:https://github.com/JakeWharton/ActionBarSherlock/

2、第二个是SlidingMenu本身。下载地址为:https://github.com/jfeinstein10/SlidingMenu/


下载好这两个文件夹之后,会得到ActionBarSherlock文件夹,我们需要该文件夹下面的actionbarsherlock文件,导入到eclipse中。另外一个文件夹为SlidingMenu,我们需要该文件夹下面的library文件,导入到eclipse中。

因为library库依赖于actionbarsherlock库,所以我们要在eclipse中导入依赖。方法为右键library------properties------Android------Add选择actionbarsherlock库然后ok。



导入后你会发现会产生错误,这是因为:

SlidingMenu集成常见错误:


Jar mismatch! Fix your dependencies :引用的和自身以来的jar包版本不一致导致的冲突。确保SlidingMenu和ActionBarSherLock所应用的android-support-v4包版本一致,使用SlidingMenu的jar包替换掉ActionBarSherLock的android-support-v4的jar包

若是应用到ActionBarSherLock的相干api,可能报找不到getSupportActionBar等ActionBarSherLock的办法。原因是应用ActionBarSherLock的Activity需继承于SherlockActivity,修改SlidingMenu library中的SlidingFragmentActivity,让它继承于SherlockFragmentActivity,从头编译library导入。


若果用户不想自己修改项目的话,可以下载我已经修改好的项目库,就集成在我的本项目的githup项目下载地址中(https://github.com/njupt1012010503/SlidingMenuTest/)。



三、使用Slidingm开源项目

首先我们新建一个SlidingMenuTest android项目。该项目要导入我们在第二步中导入的library包。



下面废话不多说,直接上传主acticity的代码,关键部分已给出中文解析

package com.example.slidingmenutext;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentTransaction;import android.view.View;import android.view.View.OnClickListener;import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;public class MainActivity extends SlidingFragmentActivity implements OnClickListener{private SlidingMenu slidingMenu;private Fragment mFrag;@Overridepublic void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setBehindContentView(R.layout.slidingmenu_left);//提供一个空的FrameLayout用来存放菜单Fragmentif (savedInstanceState == null) {FragmentTransaction t = this.getSupportFragmentManager().beginTransaction();mFrag = new LeftFragment();//具体菜单样式,用户可以在这里自定义自己的菜单t.replace(R.id.menu_frame, mFrag);t.commit();} else {mFrag = (Fragment)this.getSupportFragmentManager().findFragmentById(R.id.menu_frame);}//这里设置SlidingMenu的一些属性slidingMenu=getSlidingMenu();slidingMenu.setMode(SlidingMenu.LEFT);// 设置是左滑还是右滑,还是左右都可以滑,我这里只做了左滑slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);// 设置菜单宽度slidingMenu.setFadeDegree(0.35f);// 设置淡入淡出的比例slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置手势模式slidingMenu.setShadowDrawable(R.drawable.shadow);// 设置左菜单阴影图片slidingMenu.setFadeEnabled(true);// 设置滑动时菜单的是否淡入淡出slidingMenu.setBehindScrollScale(0.333f);// 设置滑动时拖拽效果setContentView(R.layout.slidingmenu_center);//提供一个空的FrameLayout用来存放中间内容的fragmentgetSupportFragmentManager().beginTransaction().replace(R.id.content_frame, new MainFragment())//替换中间显示的fragment.commit();}@Overridepublic void onClick(View v) {switch (v.getId()) {default:break;}}public void swtichFragment(Fragment newFragment) {getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, newFragment).commit();getSlidingMenu().showContent();}}


四、项目小结

下载该项目,你会学到:

1、SlidingMenu的使用。

2、使用模板模式,对重复代码进行重构。这里几个fragment有一些公用功能,我们放到了BaseFragment中。然后我们新建的Fragment只需要继续BaseFragment就可以实现公用的一些功能。

3、文字阴影效果的实现

4、本实例从正式项目中抽取出来,使用价值较高。


欢迎大家下载使用:

下载地址:

githup下载地址:https://github.com/njupt1012010503/SlidingMenuTest/

csdn下载地址:点击打开链接



0 0