侧滑菜单框架slidingMenu学习总结

侧滑菜单框架slidingMenu,实现了侧滑展示另一个activity界面,按比例分配两个activity的显示比例的功能框架下载地址:https://github.com/jfeinstein10/SlidingMenu先上效果图接下来总结实现步骤:步骤一:引入第三方框架包。将下载好的第三方框架slidingMenuLibrary项目引入Eclips
摘要由CSDN通过智能技术生成

侧滑菜单框架slidingMenu,实现了侧滑展示另一个activity界面,按比例分配两个activity的显示比例的功能

框架下载地址:https://github.com/jfeinstein10/SlidingMenu

先上效果图


接下来总结实现步骤:

步骤一:引入第三方框架包。

将下载好的第三方框架slidingMenuLibrary项目引入Eclipse。在自己的项目中使用别人写好的方法来实现自己的需求。

引入第三放框架步骤如下:

1.在eclipse中点击左上角File菜单。

2.选择Import…选项。

3.引入android项目,根据slidingMenuLibrary项目路径引入,同时勾选Copy projects into workspace选项(拷贝到工作空间)。

4.找到引入的slidingMenuLibrary项目右键,选择Properties选项,在左侧菜单中选择Android选项勾选is Library选项。

5.创建需要侧滑菜单的项目,找到创建好的项目,右键选择Properties选项,同样在左侧菜单中选择Android选项,点击add按钮添加slidingMenuLibrary项目,到此成功引入第三方框架侧滑菜单slidingMenuLibrary项目。

步骤二:制作MainActivity界面布局,SecondActivity类布局与侧滑菜单选项布局

MainActivity界面布局与SecondActivity界面布局在创建android activity类时自动生成无需再次创建,这两个布局文件对应为每个界面不同的页面,需要单独创建侧滑菜单布局文件,创建一个android布局文件命名为menu.xml,menu.xml对应为侧滑菜单的布局文件。

步骤三:写侧滑菜单Menu类。

创建Menu类,在该类中添加一个有参构造方法,接受参数类型是Activity类型,在该构造方法中创建第三方框架侧滑菜单对象,类型为Slidingmenu,通过setMenu方法设置该对象显示布局样式,指向secondActivit布局文件。根据该布局找到每个侧滑菜单的按钮,给按钮添加监听。同时在该类中添加showMenu方法,在该方法中实现展示侧滑菜单功能。

步骤四:在MainActivity类中显示侧滑菜单。

在MainActivity类中的onCreate的方法中创建Menu对象,通过Menu对象调用的showMenu方法来显示侧滑菜单,给MainActivity布局中的TextView添加监听,实现当点击TextView时也能弹出侧滑菜单。



一、加载slidingMenu框架


二、创建两个activity并加载两个对应的layout文件;创建侧滑要显示的布局menu.xml;



三、创建一个类,并在构造方法里创建slidingMenu,设置参数;另外提供一个show方法供外界调用;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Menu {
	SlidingMenu slidingMenu;
	/**
	 * 此构造方法创建一个slidingMenu,
	 * @param activity
	 */
	public Menu(final Activity activity) {
		//创建slidingMenu对象
		slidingMenu=new SlidingMenu(activity);
		//加载布局文件
		slidingMenu.setMenu(R.layout.menu);
		//设置依附于哪个activty
		slidingMenu.attachToActivity(activity, SlidingMenu.SLIDING_CONTENT);
		//设置slidinmenu显示宽度,通过得到当前activity的宽度作为计算依据
		int windowWidth=activity.getResources().getDisplayMetrics().widthPixels;
		slidingMenu.setBehindOffset(windowWidth/2);
		//给slidingMenu里的buttonsecond控件添加监听器,单击后跳转到secondActivity
		Button btnSecond=(Button) activity.findViewById(R.id.buttonSecond);
		btnSecond.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				activity.startActivity(new Intent(activity, SecondActivity.class));
				
			}
		});
	}
	
		//此方法显示slidingMenu
<span style="white-space:pre">	</span>public void showMenu(){
<span style="white-space:pre">		</span>if(isShow==false){
<span style="white-space:pre">		</span>slidingMenu.showMenu();
<span style="white-space:pre">	</span>}else{
<span style="white-space:pre">		</span>slidingMenu.closeMenu();
<span style="white-space:pre">		</span>isShow=true;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>
	}

}

四、在mainAcivity里实现侧滑菜单效果,给textview添加监听器,单击时显示侧滑菜单

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.app.Activity;

public class MainActivity extends Activity {
	Menu menu;
	TextView tv;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//创建侧滑菜单类实例
		menu = new Menu(this);
		//找到控件
		tv=(TextView) findViewById(R.id.showMenu);
		//设置监听器,单击时显示侧滑菜单;
		tv.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				menu.showMenu();
			}
		});
	}
如果想使用滑动界面时显示侧滑菜单,只需在当前Activity的onTouchEvent方法里添加显示方法即可;

private float startX;
	@Override
	public boolean onTouchEvent	(MotionEvent event) {
		//对界面滑动进行监听,
		int action = event.getAction();
		switch (action) {
		case MotionEvent.ACTION_DOWN:
		 startX =event.getX();
			break;
		case MotionEvent.ACTION_UP:
			float stopX = event.getX();
			//如果X的开始坐标不等于结束坐标,说明有滑动;调Menu的showMenu方法
			if(startX!=stopX){
				menu.showMenu();
			}
			break;
		}
		return super.onTouchEvent(event);
	}

















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值