侧滑框——SlidingMenu
2016-05-11 09:58
218 查看
一、将所下载的libary包导入到项目中
二、在项目中初始化侧滑菜单
创建相应的布局文件
解决ViewPager与侧滑的冲突
点击按钮侧滑框拉出
二、在项目中初始化侧滑菜单
public void initSlidingMenu() { SlidingMenu menu = new SlidingMenu(this); // 设置侧滑方式为左侧侧滑 menu.setMode(SlidingMenu.LEFT); /* * 设置拖拽模式 SlidingMenu.TOUCHMODE_FULLSCREEN全屏触摸有效 * SlidingMenu.TOUCHMODE_MARGIN 拖拽边缘有效 SlidingMenu.TOUCHMODE_NONE * 不响应触摸事件 */ menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); // 设置阴影的宽度 menu.setShadowWidthRes(R.dimen.shadow_width); // 设置阴影的图片 menu.setShadowDrawable(R.drawable.shadow); // 设置sldingMenu的剩余大小---=内容显示页对应的dp大小 menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); // 设置滑动时的渐变程度 menu.setFadeDegree(0.35f); // 使SlidingMenu附加在Activity右边 // SlidingMenu.SLIDING_CONTENT 将侧滑栏设置为在内容位置 // SlidingMenu.SLIDING_WINDOW 将侧滑栏设置为在整个窗口呈现 menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); // 设置SlidingMenu关联的布局 menu.setMenu(R.layout.menu_layout); // 在SlidingMenu关联布局中查询控件 ListView lv_list = (ListView) menu.findViewById(R.id.lv); // 简单设置SlidingMenu界面显示内容 ArrayList<String> strList = new ArrayList<String>(); for (int i = 0; i < 20; i++) { strList.add("第" + i + "个条目"); } // 设置数据适配器 lv_list.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, strList)); }
创建相应的布局文件
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <gradient android:centerColor="#ccc" android:endColor="#ccc" android:startColor="#ccc" /> </shape>
<resources> <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen> <dimen name="shadow_width">2dp</dimen> <dimen name="slidingmenu_offset">160dp</dimen> </resources>
解决ViewPager与侧滑的冲突
vp_pager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { if (arg0 == 0) { menu.setTouchModeAbove( SlidingMenu.TOUCHMODE_FULLSCREEN); } else { // 当在其他位置的时候,设置不可以拖拽出来(SlidingMenu.TOUCHMODE_NONE),或只有在边缘位置才可以拖拽出来TOUCHMODE_MARGIN menu.setTouchModeAbove( SlidingMenu.TOUCHMODE_NONE); } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } });
点击按钮侧滑框拉出
1. 第一种代码 iv_image.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (menu.isMenuShowing()) { menu.showContent(); } else { menu.showMenu(); } } }); 2. 第二种代码 iv_image.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // menu.toggle(); } });
相关文章推荐
- 如何透过SSH代理穿越跳板机
- ajax无刷新分页的简单实现
- 剑指offer之面试题12打印1到最大的n位数
- arcTo 画 狐行
- IOS高级开发~Runtime(三)
- Verilog基础知识0(`define、parameter、localparam三者的区别及举例)
- MySQL数据库实例参数对比脚本
- C#中Timer使用及解决重入问题
- 数组把相同的数值取出来
- vim脚本语言
- 架构和框架的区别
- android 开发技巧、问题汇总
- 横竖屏切换
- fillStyle图片填充
- Swift自己定义并实现拷贝方法
- IOS高级开发~Runtime(二)
- gradle下载地址
- 插件笔记——dataTables使用说明
- 多项式
- Hadoop与分布式开发