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

一、项目概述

目前在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;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		
		setBehindContentView(R.layout.slidingmenu_left);//提供一个空的FrameLayout用来存放菜单Fragment
		
		if (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用来存放中间内容的fragment
		
		getSupportFragmentManager()
		.beginTransaction()
		.replace(R.id.content_frame, new MainFragment())//替换中间显示的fragment
		.commit();
		
	}

	@Override
	public 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值