Android SlidingMenu 侧拉菜单的使用(详细配置)
2023-09-14 08:58:19 时间
public SlidingMenu initSlidingMenu(Activity activity) {
SlidingMenu localSlidingMenu = new SlidingMenu(activity);
localSlidingMenu.setMode(SlidingMenu.LEFT_RIGHT);//设置左右滑菜单
localSlidingMenu.setTouchModeAbove(SlidingMenu.LEFT);//设置要使菜单滑动,触碰屏幕的范围
//localSlidingMenu.setTouchModeBehind(SlidingMenu.RIGHT);
localSlidingMenu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度
localSlidingMenu.setShadowDrawable(R.drawable.shadow);//设置阴影图片
localSlidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//设置划出时主页面显示的剩余宽度
span /span localSlidingMenu.setFadeEnabled(true);//设置滑动时菜单的是否渐变 span /span localSlidingMenu.setFadeDegree(0.35F);// span 设置 /span 滑动时的渐变程度
localSlidingMenu.attachToActivity(activity, SlidingMenu.RIGHT);//使SlidingMenu附加在Activity右边
// localSlidingMenu.setBehindWidthRes(R.dimen.left_drawer_avatar_size);//设置SlidingMenu菜单的宽度
localSlidingMenu.setMenu(R.layout.left_drawer_fragment);//设置menu的布局文件
localSlidingMenu.toggle();//动态判断自动关闭或开启SlidingMenu
localSlidingMenu.setOnOpenedListener(new SlidingMenu.OnOpenedListener() {
public void onOpened() {
}
});
return localSlidingMenu;
}
span /span localSlidingMenu.setMenu(R.layout.left_drawer_fragment);//设置左测menu的布局文件 localSlidingMenu.setSecondaryMenu(R.layout.profile_drawer_right); span //设置右测menu的布局文件 /span localSlidingMenu.setSecondaryShadowDrawable(R.drawable.shadowright);//设置右侧阴影文件
1)SlidingMenu.LEFT 在左测进行拖动才会相应MENU的拖动效果 2)SlidingMenu.RIGHT 在右测进行拖动才会相应MENU的拖动效果 3)SlidingMenu.TOUCHMODE_FULLSCREEN 全屏可以拖动 配置设定方法中 attachToActivity(Activity activity, int slideStyle)中slideStyle常用属性有:
span /span localSlidingMenu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度 localSlidingMenu.setShadowWidth(100);//设置阴影图片的宽度
第一个是从资源文件中获取 ,第二种是直接设定给它,注意,第二种设定的是像素,所以一般建议用第一种方式,其它有的方法结构一样也是类似,以此类推。 这样便配置完成了SlidingMenu,之后你可以去调用以下方法实现SlidingMenu的动作效果:
3)localSlidingMenu.showSecondaryMenu(); //显示Menu第2个菜单
4)localSlidingMenu.setOnOpenListener(OnOpenListener listener); 设置Menu菜单的打开监听 5)localSlidingMenu.setOnCloseListener(OnCloseListener listener); 设置Menu菜单的关闭时候的监听(when)
6)localSlidingMenu.setOnClosedListener(OnClosedListener listener);; 设置Menu菜单的关闭后的监听(after ,和方法4是有区别的)
和一些判断: 1)Boolean 类型:localSlidingMenu.isMenuShowing(); 判断menu菜单是否是显示的,显示的话返回true,反之false。
localSlidingMenu.isSecondaryMenuShowing(); 判断menu的第2个菜单是否是显示的,显示的话返回true,反之false。
上面的流程设定的menu是通过设定layout给定的布局文件,而有的人喜欢把侧拉菜单使用块Fragment去管理,那么可以继承架包中的SlidingFragmentActivity方法去实现。 下面是我找到的一个相关帖子,我这里就不做总结了,里面有怎么去用Fragment实现menu.点我
上面讲好了用代码的方式去实现menu侧拉菜单,下面说说如何在布局xml文件中实现类似的效果。 其实就是把SlidingMenu作为一个view,在布局文件中配置实现。
com.jeremyfeinstein.slidingmenu.lib.SlidingMenu xmlns:sliding="http://schemas.android.com/apk/res-auto" android:id="@+id/slidingmenulayout" android:layout_width="fill_parent" android:layout_height="fill_parent" sliding:viewAbove="@layout/YOUR_ABOVE_VIEW" sliding:viewBehind="@layout/YOUR_BEHIND_BEHIND" sliding:touchModeAbove="margin|fullscreen" sliding:behindOffset="@dimen/YOUR_OFFSET" sliding:behindWidth="@dimen/YOUR_WIDTH" sliding:behindScrollScale="@dimen/YOUR_SCALE" sliding:shadowDrawable="@drawable/YOUR_SHADOW" sliding:shadowWidth="@dimen/YOUR_SHADOW_WIDTH" sliding:fadeEnabled="true|false" sliding:fadeDegree="float" sliding:selectorEnabled="true|false" sliding:selectorDrawable="@drawable/YOUR_SELECTOR"/
使用过程中发现的问题: 1)设置了这个属性后localSlidingMenu.setTouchModeBehind(SlidingMenu.RIGHT);
会发生测拉菜单按钮等的焦点被夺走或失效,所以这个属性最好不好设了。 2)关于SlidingMenu的引发的原生动画不流畅的问题 slidingmenu会不间断进行全局重绘,所以如果动画多了就卡
span /span localSlidingMenu.setMenu(R.layout.left_drawer_fragment);//设置左测menu的布局文件 localSlidingMenu.setSecondaryMenu(R.layout.profile_drawer_right); span //设置右测menu的布局文件 /span localSlidingMenu.setSecondaryShadowDrawable(R.drawable.shadowright);//设置右侧阴影文件
1)SlidingMenu.LEFT 在左测进行拖动才会相应MENU的拖动效果 2)SlidingMenu.RIGHT 在右测进行拖动才会相应MENU的拖动效果 3)SlidingMenu.TOUCHMODE_FULLSCREEN 全屏可以拖动 配置设定方法中 attachToActivity(Activity activity, int slideStyle)中slideStyle常用属性有:
span /span localSlidingMenu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度 localSlidingMenu.setShadowWidth(100);//设置阴影图片的宽度
第一个是从资源文件中获取 ,第二种是直接设定给它,注意,第二种设定的是像素,所以一般建议用第一种方式,其它有的方法结构一样也是类似,以此类推。 这样便配置完成了SlidingMenu,之后你可以去调用以下方法实现SlidingMenu的动作效果:
3)localSlidingMenu.showSecondaryMenu(); //显示Menu第2个菜单
4)localSlidingMenu.setOnOpenListener(OnOpenListener listener); 设置Menu菜单的打开监听 5)localSlidingMenu.setOnCloseListener(OnCloseListener listener); 设置Menu菜单的关闭时候的监听(when)
6)localSlidingMenu.setOnClosedListener(OnClosedListener listener);; 设置Menu菜单的关闭后的监听(after ,和方法4是有区别的)
和一些判断: 1)Boolean 类型:localSlidingMenu.isMenuShowing(); 判断menu菜单是否是显示的,显示的话返回true,反之false。
localSlidingMenu.isSecondaryMenuShowing(); 判断menu的第2个菜单是否是显示的,显示的话返回true,反之false。
上面的流程设定的menu是通过设定layout给定的布局文件,而有的人喜欢把侧拉菜单使用块Fragment去管理,那么可以继承架包中的SlidingFragmentActivity方法去实现。 下面是我找到的一个相关帖子,我这里就不做总结了,里面有怎么去用Fragment实现menu.点我
上面讲好了用代码的方式去实现menu侧拉菜单,下面说说如何在布局xml文件中实现类似的效果。 其实就是把SlidingMenu作为一个view,在布局文件中配置实现。
com.jeremyfeinstein.slidingmenu.lib.SlidingMenu xmlns:sliding="http://schemas.android.com/apk/res-auto" android:id="@+id/slidingmenulayout" android:layout_width="fill_parent" android:layout_height="fill_parent" sliding:viewAbove="@layout/YOUR_ABOVE_VIEW" sliding:viewBehind="@layout/YOUR_BEHIND_BEHIND" sliding:touchModeAbove="margin|fullscreen" sliding:behindOffset="@dimen/YOUR_OFFSET" sliding:behindWidth="@dimen/YOUR_WIDTH" sliding:behindScrollScale="@dimen/YOUR_SCALE" sliding:shadowDrawable="@drawable/YOUR_SHADOW" sliding:shadowWidth="@dimen/YOUR_SHADOW_WIDTH" sliding:fadeEnabled="true|false" sliding:fadeDegree="float" sliding:selectorEnabled="true|false" sliding:selectorDrawable="@drawable/YOUR_SELECTOR"/
使用过程中发现的问题: 1)设置了这个属性后localSlidingMenu.setTouchModeBehind(SlidingMenu.RIGHT);
会发生测拉菜单按钮等的焦点被夺走或失效,所以这个属性最好不好设了。 2)关于SlidingMenu的引发的原生动画不流畅的问题 slidingmenu会不间断进行全局重绘,所以如果动画多了就卡
相关文章
- [Android]中文API(一)android包下的那些类
- Android studio环境配置(运行报错)
- android的<uses-feature>详解
- Android API之android.provider.ContactsContract.Data
- Android开发学习---android下的数据持久化,保存数据到rom文件,android_data目录下文件访问的权限控制
- Android Eclipse之Git插件安装、配置、提交、修改、冲突、查看历史、覆盖。
- [Android] View和ViewGroup事件分发机制
- Android/Unity大乱斗-完整双方集成交互指南
- Android SlidingMenu导致虚拟键盘位置有黑灰空白
- Android Wear开发步骤
- android的底层驱动调试心得
- Android【报错】android.content.ActivityNotFoundException:activity in yourAndroidManifest.?
- 【Android笔记05】Android基本的UI控件(ListView、RecyclerView、ViewPager)
- Android 11.0 12.0framework去掉长按webview界面弹框中的 打开 字符串
- android 10.0删除连接wifi的配置信息
- 如何实现Android端获取RTSP|RTMP流转推RTMP
- 【Android Gradle 插件】组件化中的 Gradle 构建脚本实现 ⑤ ( 优化 Gradle 构建脚本 | 构建脚本结构 | 闭包定义及用法 | 依赖配置 | android 块配置 )
- 【Android Gradle 插件】LintOptions 配置 ⑧ ( ignoreWarnings 属性配置 | lintConfig 属性配置 | noLines 属性配置 )
- 【Android Gradle 插件】LintOptions 配置 ② ( abortOnError 配置 | 手动执行 lint 检查并生成 lint-result.html 检查报告 )
- 编译Android VNC Server(pc远程控制android)(四十九)
- android电池充电动画,Android 开机充电图标和充电动画效果
- Android的java的报错提示:Could not find com.android.tools.build:gradle:4.2.2.
- Android 6.0以上动态请求权限的工具类
- Android Studio 安装与配置