来源

SlidingMenu是github上比较火开源库,非常强大,不但可是简单的设置实现两侧滑动菜单,还可以设置菜单的阴影、渐变色、划动模式等。

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


如何使用

要想能够实现SlidingMenu的效果,首先必须要将它作为libary导入到你的工程。

注意slidingMenu_library类库本身自带了android-support-v4.jar文件,而我们自己的工程一般也带有这个文件,如果两个文件的SHA-1值不一样,可能会出现

找不到类的异常,我的做法是删除掉自己项目里面的android-support-v4.jar。




API示例代码

package com.example.slidingmenu_left;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.Window;import com.example.slidingmenu_left.fragment.MenuFragment;import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;public class MainActivity extends SlidingFragmentActivity {private SlidingMenu slidingMenu;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);// 内容页布局setContentView(R.layout.content);// 设置侧拉条目布局setBehindContentView(R.layout.menu_frame);// 获取侧拉栏目对象slidingMenu = getSlidingMenu();/* * SlidingMenu.TOUCHMODE_FULLSCREEN  全屏触摸拖拽有效 * SlidingMenu.TOUCHMODE_MARGIN      拖拽边缘有效 * SlidingMenu.TOUCHMODE_NONE        全屏不响应触摸拖拽事件 */slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);// 设置内容显示页对应的dp大小slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//// 设置左侧侧拉栏目的dp大小//slidingMenu.setBehindWidthRes(140);// 注意这里面140的单位是像素/* * SlidingMenu.LEFT * SlidingMenu.RIGHT * SlidingMenu.LEFT_RIGHT */// 设置侧拉栏目的位置slidingMenu.setMode(SlidingMenu.LEFT);// 给侧拉栏目和右侧内容页区分开(竖线)slidingMenu.setShadowDrawable(R.drawable.shadow);// 设置(竖线)的宽度slidingMenu.setShadowWidthRes(R.dimen.shadow_width);// fragment去替换布局中节点Fragment fragment = new MenuFragment();getSupportFragmentManager().beginTransaction()// 开启事务   .replace(R.id.menu, fragment, "MENU")//替换布局   .commit();// 提交事务}/** * 当前类中做替换当前显示内容界面的操作 * @author wuseyukui * * @param fragment */public void switchFragment(Fragment fragment) {if (fragment != null) {getSupportFragmentManager().beginTransaction()      .replace(R.id.content_frame, fragment, "CONTENT")   .commit();   slidingMenu.toggle();}}}

package com.example.slidingmenu_left.fragment;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.support.v4.app.Fragment;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.ListView;import com.example.slidingmenu_left.MainActivity;import com.example.slidingmenu_left.R;public class MenuFragment extends Fragment {private String tag = "MenuFragment";private View view;/** * 创建对象 */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Log.i(tag , "=====onCreate");}/** * 类似:setContentView * 设置布局 */@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {Log.i(tag , "=====onCreateView");view = View.inflate(getActivity(), R.layout.list_view, null);return view;}/** * 数据填充操作 */@Overridepublic void onActivityCreated(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);Log.i(tag , "=====onActivityCreated");ListView listView = (ListView)view.findViewById(R.id.list_view);listView.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, initData()));listView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {Fragment fragment = null;switch (position) {case 0:fragment = new Fragment1();break;case 1:fragment = new Fragment2();break;case 2:fragment = new Fragment3();break;case 3:fragment = new Fragment4();break;case 4:fragment = new Fragment5();break;default:break;}swithFragment(fragment);}});}private void swithFragment(Fragment fragment) {if (getActivity() instanceof MainActivity) {((MainActivity)getActivity()).switchFragment(fragment);}}private List<String> initData() {ArrayList<String> arrayList = new ArrayList<String>();arrayList.add("栏目1");arrayList.add("栏目2");arrayList.add("栏目3");arrayList.add("栏目4");arrayList.add("栏目5");return arrayList;}}

效果图:



更多相关文章

  1. 布局添加下划线
  2. Android(安卓)View初始化基本流程
  3. Android仿微信底部菜单
  4. Android中DialogFragment的简单使用及常见问题
  5. getLeft,getTop,getRight,getBottm区别
  6. Android(安卓)界面适配笔记
  7. Android(安卓)Adapter总结
  8. Android(安卓)开发学习进程0.15 adb cardview framelayout 控件
  9. android notification的用法

随机推荐

  1. getHeight returns 0 for all Android(安
  2. Android学习笔记(三) 之模拟打电话
  3. 整理 酷炫 Android、Flutter 开源UI框架
  4. Android(安卓)自定义Dialog 控制
  5. cling-java,android的协议栈
  6. 人脸识别调研报告
  7. 解决 Android(安卓)SDK下载和更新失败“C
  8. 高度状态栏Android获取状态栏的高度高度
  9. Android监听USB插拔事件
  10. Binder 和 AIDL