Android:SlidingMenu(侧滑菜单)用法示例

本文介绍如何使用 SlidingMenu 库实现 Android 应用的侧滑菜单功能。包括库的下载、导入步骤及配置方法,并提供 MainActivity 示例代码与布局文件,展示了基本的侧滑菜单设置。

下载项目地址:https://github.com/jfeinstein10/SlidingMenu
首先根据地址将代码下载到本地
导入该libary到工程:
1,File—>New->Import Module->根据路径查找,导入
2,导入第三方的libary时,建议导入时修改libray的名字,见名知意,此处改名为SlidingMenuLibrary
3,SlidingMenuLibrary ->src -> build.gradle-> dependencies {
classpath ‘com.android.tools.build:gradle:1.0.0’(改为1.0.0)
}
4, compileSdkVersion 19(sdk中build-tools找已存在的)
buildToolsVersion “20.0.0”(sdk中platforms找已存在的)
5,File->Project Structure->app->Dependencies->右上角+ ->ok

MainActivity中的代码:

package com.myapplication.slidingmenu;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

/**
 * 侧滑菜单的基本使用
 * 1,创建侧滑菜单
 * 2,根据相应的需求 设置侧滑的属性
 */
public class MainActivity extends AppCompatActivity {
    private SlidingMenu slidingMenu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //创建侧滑菜单
        slidingMenu = new SlidingMenu(this);
        //设置菜单划出的方向
        //(SlidingMenu.LEFT左侧 ,SlidingMenu.RIGHT右侧,SlidingMenu.LEFT_RIGHT左右都可以)
        slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);
        //设置菜单显示的布局
        slidingMenu.setMenu(R.layout.left_menu);
        slidingMenu.setSecondaryMenu(R.layout.right_menu);
        //设置菜单显示的宽度
        slidingMenu.setBehindWidth(200);
        //设置划出来的方式
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
        //绑定activity,设置菜单划出来的高度:全屏,actionBar下面
        slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
    }
}

左侧布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical"
              android:background="#ffff00"
    >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#ff00ff"
        android:text="按钮一"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#00ff00"
        android:text="按钮二"
        />
</LinearLayout>

右侧布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="#ff00ff"
              android:orientation="vertical"
    >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="右侧按钮"
        />
</LinearLayout>

效果图:
这里写图片描述 这里写图片描述

SlidingMenu常用属性总结:

menu.setMode(SlidingMenu.LEFT);//设置左滑菜单  
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置滑动的屏幕范围,该设置为全屏区域都可以滑动  
menu.setShadowDrawable(R.drawable.shadow);//设置阴影图片  
menu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度  
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu划出时主页面显示的剩余宽度  
menu.setBehindWidth(400);//设置SlidingMenu菜单的宽度  
menu.setFadeDegree(0.35f);//SlidingMenu滑动时的渐变程度  
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//使SlidingMenu附加在Activity上  
menu.setMenu(R.layout.menu_layout);//设置menu的布局文件  
menu.toggle();//动态判断自动关闭或开启SlidingMenu  
menu.showMenu();//显示SlidingMenu  
menu.showContent();//显示内容  
menu.setOnOpenListener(onOpenListener);//监听slidingmenu打开  

menu.setOnOpenedListener(onOpenedlistener);//监听slidingmenu打开后  

menu.OnCloseListener(OnClosedListener);//监听slidingmenu关闭时事件  

menu.OnClosedListener(OnClosedListener);//监听slidingmenu关闭后事件  

//左右都可以划出SlidingMenu菜单只需要设置属性,
//然后设置右侧菜单的布局文件    
menu.setMode(SlidingMenu.LEFT_RIGHT);
menu.setSecondaryMenu(R.layout.menu_fram2);//设置右侧菜单  

menu.setSecondaryShadowDrawable(R.drawable.shadowright);//右侧菜单的阴影图片 
slidingmenu包含slidingmenuDemo跟两个slidingmenu_lib,slidingmenu_actionbar,直接可以用。slidingmenu_lib是开源项目ActionBarSherlock-master的library类库,slidingmenu_actionbar是开源项目ActionBarSherlock-master的actionbarsherlock类库,只是重命名了,slidingmenuDemo是开源项目ActionBarSherlock-maste的Example。注意:(已修改) 1.可能报找不到getSupportActionBar等ActionBarSherLock的方法。原因是使用ActionBarSherLock的Activity需继承于SherlockActivity,修改SlidingMenu liberary(slidingmenu_lib)中的 SlidingFragmentActivity,让它继承于SherlockFragmentActivity,重新编译liberary导入。 2.项目红叉或红叹号,删除support_v4包,ActionBarSherLock(slidingmenu_actionbar)已包含此包,会冲突。也有可能是主题问题,注意appication theme是否正确,参照exsample。 3.注意把ActionBar、某些Fragment等替换成ActionBarSherLock包中的类。 SlidingMenu依赖ActionBarSherlock。可以去官网下载最新的ActionBarSherlock。在导入的时候SlidingMenu-master/library中的 SlidingActivity.java、SlidingFragmentActivity.java SlidingPreferenceActivity.java三个文件作如下修改就好了。 SlidingActivity extends Activity SlidingFragmentActivity extends FragmentActivity SlidingPreferenceActivity extends PreferenceActivity 分别替换成 SlidingActivity extends SherlockActivity SlidingFragmentActivity extends SherlockFragmentActivity SlidingPreferenceActivity extends SherlockPreferenceActivity
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值