首页 > 代码库 > SlidingMenu属性详解

SlidingMenu属性详解

SlidingMenu是一款开源的Android开发类库,它可以让开发者在自己的Android App中非常便捷地创建侧滑菜单,类似Google+, YouTube, 和Facebook的App菜单。下面先来看看SlidingMenu的效果图。

技术分享

技术分享

使用方法

一个简单的DEMO示例:

  1. public class SlidingExample extends Activity {  
  2.  
  3.     @Override 
  4.     public void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         setTitle(R.string.attach);  
  7.         // set the content view  
  8.         setContentView(R.layout.content);  
  9.         // configure the SlidingMenu  
  10.         SlidingMenu menu = new SlidingMenu(this);  
  11.         menu.setMode(SlidingMenu.LEFT);  
  12.         menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);  
  13.         menu.setShadowWidthRes(R.dimen.shadow_width);  
  14.         menu.setShadowDrawable(R.drawable.shadow);  
  15.         menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);  
  16.         menu.setFadeDegree(0.35f);  
  17.         menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);  
  18.         menu.setMenu(R.layout.menu);  
  19.     }  
  20.  

XML配置方式

如果你想把SlidingMenu当做view来使用,那么xml布局文件可以写成以下这样:

  1. <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu  
  2.     xmlns:sliding="http://schemas.android.com/apk/res-auto" 
  3.     android:id="@+id/slidingmenulayout" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     sliding:viewAbove="@layout/YOUR_ABOVE_VIEW" 
  7.     sliding:viewBehind="@layout/YOUR_BEHIND_BEHIND" 
  8.     sliding:touchModeAbove="margin|fullscreen" 
  9.     sliding:behindOffset="@dimen/YOUR_OFFSET" 
  10.     sliding:behindWidth="@dimen/YOUR_WIDTH" 
  11.     sliding:behindScrollScale="@dimen/YOUR_SCALE" 
  12.     sliding:shadowDrawable="@drawable/YOUR_SHADOW" 
  13.     sliding:shadowWidth="@dimen/YOUR_SHADOW_WIDTH" 
  14.     sliding:fadeEnabled="true|false" 
  15.     sliding:fadeDegree="float" 
  16.     sliding:selectorEnabled="true|false" 
  17.     sliding:selectorDrawable="@drawable/YOUR_SELECTOR"/> 

注意:你不能同时使用behindOffset和behindWidth,不然会出错。

Android SlidingMenu侧滑菜单使用介绍

现在很多android应用都有侧滑菜单,效果很不错。

GitHub上有SlidingMenu的开源库,使用起来很方便。

SlidingMenu GitHub地址:https://github.com/jfeinstein10/SlidingMenu。GitHub上说,Sliding结合 ActionBarSherlock使用功能可以更丰富,ActionBarSherlock GitHub地址:https://github.com/JakeWharton/ActionBarSherlock

下面,介绍下SlidingMenu的使用。

(1)从GitHub上download zip到本地,解压缩,得到其中的一个文件夹,library。

(2)Eclipse import  Existing Android Code Into Workspace。 点击项目右键 properties->Android,可以看到,其 Is Library。

(3)在将使用SlidingMenu的项目上点击右键 properties->Android,Library下将(2)导入的项目add进去。

(4)为保证SlidingMenu库应用到项目中成功,必须保证项目使用的libs和SlidingMenu库使用的libs版本一致,主要是指 android-support-v4.jar。如果项目libs不存在或编译不通过,可以尝试新建libs文件夹,并置入android- support-v4.jar。在libs上右键->Build Path->Use as Source。一般可以解决。

(5)第(4)步之后,便可以在项目中直接使用SlidingMenu。

Java代码:MainActivity:

  1. package com.jj.testslidingmenu;  
  2.  
  3. import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;  
  4.  
  5. import android.os.Bundle;  
  6. import android.app.Activity;  
  7. import android.view.KeyEvent;  
  8. import android.view.Menu;  
  9.  
  10. public class MainActivity extends Activity {  
  11.  
  12.     SlidingMenu slidingMenu;  
  13.     @Override 
  14.     protected void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.         setContentView(R.layout.activity_main);  
  17.  
  18.         slidingMenu = new SlidingMenu(this);  
  19.         slidingMenu.setMode(SlidingMenu.LEFT);  
  20.         slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);  
  21.         slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);  
  22.         slidingMenu.setMenu(R.layout.slidingmenu);  
  23.         slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);  
  24.     }  
  25.  
  26.     @Override 
  27.     public boolean onKeyDown(int key, KeyEvent event){  
  28.         switch (key) {  
  29.         case KeyEvent.KEYCODE_MENU:  
  30.             slidingMenu.toggle(true);  
  31.             break;  
  32.  
  33.         default:  
  34.             break;  
  35.         }  
  36.         return false;  
  37.     }  
  38.  

XMl布局代码:layout/slidingmenu.xml:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:layout_width="match_parent" 
  4.     android:layout_height="match_parent" 
  5.     android:orientation="vertical"   
  6.     android:background="#ff999999">  
  7.  
  8.     <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu   
  9.         android:id="@+id/slidingmenu" 
  10.         android:layout_width="match_parent" 
  11.         android:layout_height="match_parent" 
  12.     >  
  13.       <Button   
  14.           android:layout_width="match_parent" 
  15.           android:layout_height="wrap_content" 
  16.           android:text = "click me"/>    
  17.  
  18.     </com.jeremyfeinstein.slidingmenu.lib.SlidingMenu>  
  19. </LinearLayout> 

对于SlidingMenu常用的一些属性设置记录如下:

  1. menu.setMode(SlidingMenu.LEFT);//设置左滑菜单  
  2. menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置滑动的屏幕范围,该设置为全屏区域都可以滑动  
  3. menu.setShadowDrawable(R.drawable.shadow);//设置阴影图片  
  4. menu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度  
  5. menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu划出时主页面显示的剩余宽度  
  6. menu.setBehindWidth(400);//设置SlidingMenu菜单的宽度  
  7. menu.setFadeDegree(0.35f);//SlidingMenu滑动时的渐变程度  
  8. menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//使SlidingMenu附加在Activity上  
  9. menu.setMenu(R.layout.menu_layout);//设置menu的布局文件  
  10. menu.toggle();//动态判断自动关闭或开启SlidingMenu  
  11. menu.showMenu();//显示SlidingMenu  
  12. menu.showContent();//显示内容  
  13. menu.setOnOpenListener(onOpenListener);//监听slidingmenu打开  
  14.  
  15. menu.setOnOpenedListener(onOpenedlistener);监听slidingmenu打开后  
  16.  
  17. menu.OnCloseListener(OnClosedListener);//监听slidingmenu关闭时事件  
  18.  
  19. menu.OnClosedListener(OnClosedListener);//监听slidingmenu关闭后事件  
  20.  
  21. 左右都可以划出SlidingMenu菜单只需要设置  
  22. menu.setMode(SlidingMenu.LEFT_RIGHT);属性,然后设置右侧菜单的布局文件  
  23. menu.setSecondaryMenu(R.layout.menu_fram2);//设置右侧菜单  
  24.  
  25. menu.setSecondaryShadowDrawable(R.drawable.shadowright);//右侧菜单的阴影图片 

原文链接:http://www.codeceo.com/article/android-slidingmenu-2.html

SlidingMenu属性详解