Android中使用开源框架SlidingMenu构建左滑菜单栏

         在android中我们经常会用到类似于网易新闻客户端中的左侧菜单栏。一般自己手写都比较复杂,而且也会耗费大量的时间,为了提高开发效率,我们可以直接使用一个开源框架SlidingMenu来构建菜单栏。

         以我自己写的一个项目为例:在屏幕的左侧构建一个隐藏的菜单栏,布局是Fragment来写的。

        器使用方法如下:

        1、创建一个自己的类继承于Fragment,并且为它填充好数据,这样左侧菜单栏的整个UI,我们就搭建好了。

         代码:

         

private View view;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		
		super.onCreate(savedInstanceState);
	}
	/**
	 * 加载UI
	 */
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		  view = View.inflate(getActivity(), R.layout.list_view, null);
		return view;
	}
	/**
	 * 填充数据
	 */
	@Override
	public void onActivityCreated(Bundle savedInstanceState) {		
		super.onActivityCreated(savedInstanceState);
		ListView listview = (ListView) view.findViewById(R.id.list_view);
		listview.setAdapter(new ArrayAdapter(getActivity(),
				android.R.layout.activity_list_item, 
				android.R.id.text1, 
				getData()));
	}
	private List getData() {
		List list=new ArrayList();
		list.add("fragment1");
		list.add("fragment2");
		list.add("fragment3");
		list.add("fragment4");
		return list;
	}
        创建好菜单栏的UI以后,我们就可以创建一个Activity来使用这个菜单栏了,其使用步骤如下:

       

private SlidingMenu sm;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		super.onCreate(savedInstanceState);
		//设置侧滑菜单的布局
		setBehindContentView(R.layout.menu_frame);
		//设置内容页的布局
		setContentView(R.layout.content);
		//创建一个SlidingMenu对象
		sm=getSlidingMenu();
		//设置侧滑菜单的位置
		sm.setMode(SlidingMenu.LEFT);
		//设置侧滑菜单的滑动方式,此模式代表全屏都可以滑动
		sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);		
		//设置侧滑菜单的阴影
		sm.setShadowDrawable(R.drawable.shadow);
		//设置侧滑菜单阴影的宽度
		sm.setShadowWidthRes(R.dimen.activity_shadow_width);
		//设置侧滑菜单剩余的剩余宽度
		sm.setBehindOffsetRes(R.dimen.activity_context);
  
		SlidingMenuFragment smf=new SlidingMenuFragment();
		//拿到Fragment的管理器
	    FragmentManager fm=getSupportFragmentManager();
	    //开启事物
	    fm.beginTransaction()
	    //替换帧布局
	    .replace(R.id.menu, smf,"menu")
	    //提交事物
	    .commit();
	}
          这样我们一个左侧菜单栏的项目就做好啦,接下来我们就可以去测试啦。如图就是我们需要的效果啦。当然这个是划开的效果,向左滑动,就可以隐藏了,是不是很方便啦。

           

你可能感兴趣的:(Android初级)