zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

Android SlidingMenu 侧拉菜单的使用(详细配置)

Android配置 详细 菜单 使用
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会不间断进行全局重绘,所以如果动画多了就卡