您的位置:首页 > 其它

SlidingMenu侧拉菜单

2016-01-18 16:36 113 查看

SlidingMenu侧拉菜单

这次写的是侧拉菜单,相信这个功能方便而且炫酷,一直想学,之前觉得很难,不过利用开源的库函数之后就觉得实现起来很简单了
首先你的下载
sliding-menu开源项目然后导入你新建的包,



导完项目就按照下面的五个步骤来实现
当然新建的SlidingMenu_GM的res也就直接用已经写好的资源文件等会描述,其实很简单
1,设置侧拉菜单大小
2,设置内容页和侧拉菜单分割线(颜色渐变效果)
<shape>
</shape>
(设置分割线的宽度)
3,指明侧拉菜单所在的方向
4,指明拖拽区域
5,设置侧拉菜单的布局文件
这里贴出java代码和部分布局文件,代码非常详细了
MainActivity.java代码
package com.example.slidingmenu_gm;

import android.os.Bundle;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;

public class MainActivity extends SlidingFragmentActivity{
    private SlidingMenu slidingMenu;
    //继承SlidingFragmentActivity,下面的方法改为public
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//设置关联的布局文件
		setBehindContentView(R.layout.menu_frame);
		//获取侧拉菜单
		slidingMenu =getSlidingMenu();
		//内容页的宽度大小值
		slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
		//设置内容页和侧拉菜单的分割线,或者用图片
		//<shape>可以设置颜色渐变
		slidingMenu.setShadowDrawable(R.drawable.shadow);
		//设置渐变图片的宽度值
		slidingMenu.setShadowWidthRes(R.dimen.shadow_width);
		//设置侧拉菜单的左边方向
		slidingMenu.setMode(SlidingMenu.LEFT);
		//指明拖拽区域,1边缘拖拽,随意拖拽,不能拖拽
		//这里选择随意拖拽TOUCHMODE_FULLSCREEN
		//指向内容页的拖拽
		//这个是侧拉菜单区域,不要用这个,
		//不然里面的事件不能处理了slidingMenu.setTouchModeBehind(i);
		slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
       
         //左侧侧拉条目对应的fragment对象
		MenuFragment menuFragment =new MenuFragment();
	    getSupportFragmentManager()
	    .beginTransaction()
	    //需要去替换左侧侧拉帧布局的id2.fragment对象3,唯一标识
	    .replace(R.id.menu, menuFragment, "MENU")
	    .commit();
	}
}



//这个MenuFragment.java 函数用于给侧拉菜单添加控件等到
package com.example.slidingmenu_gm;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class MenuFragment extends Fragment {
	//初始化
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
    }
    //xml--->view,就是Fragment要去展示的View.类似
    //activity中的setContent()
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		TextView textView = new TextView(getActivity());
		textView.setText("这是左侧拉条目");
		//返回要替换的view
		return textView;
	}
	@Override
	public void onActivityCreated(Bundle savedInstanceState) {
		// 获取数据操作,数据填充Fragment中的onCreView返回的view
		super.onActivityCreated(savedInstanceState);
	}
}


这是侧拉菜单的布局menu_frame.xml就一个FramLayout
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/menu"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    

</FrameLayout>


实现的效果图,可以触屏滑动

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: