侧拉菜单

库文件:github:https://github.com/jfeinstein10/SlidingMenu

1.加载库文件:

把项目的libray文件import进项目中

右击工程->properties->Android->在library中选add

2.主界面activity_sliding_menu.xml:

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="TextView" />

</LinearLayout>

3.侧边栏布局文件sliding_menu_left.xml:

<?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" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>

4.Activity文件:

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class SlidingMenuAcitivity extends Activity {
    SlidingMenu menu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sliding_menu);
        menu = new SlidingMenu(this);

        // 设置侧边栏模式
        menu.setMode(SlidingMenu.LEFT);
        // 左右双侧边
        // menu.setMode(SlidingMenu.LEFT_RIGHT);
        // menu.setSecondaryMenu(R.layout.sliding_menu_left);
        // 设置菜单如何被显示出来
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        // 设置左边菜单和内容之间的交界处的阴影宽度
        menu.setShadowWidthRes(R.dimen.shadow_width);
        // 阴影图片
        menu.setShadowDrawable(R.drawable.bg_action_shadow_left);
        // 设置左边菜单距离右边的距离
        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
        // 设置渐变效果
        menu.setFadeDegree(0.35f);
        // 设置菜单如何被显示出来
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        // 把菜单贴到activity
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        // 左边菜单的布局
        menu.setMenu(R.layout.sliding_menu_left);

        Button button = (Button) findViewById(R.id.button1);
        // 侧边栏按钮事件监听
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(SlidingMenuAcitivity.this, "u click", Toast.LENGTH_LONG).show();
            }
        });
    }

    @Override
    public void onBackPressed() {
        // 检测侧边栏是否已显示,如果已显示则关闭侧边栏,如果未显示则退出此activity
        if (menu.isMenuShowing()) {
            menu.showContent();
        } else {
            super.onBackPressed();
        }
    }
}
时间: 2024-08-30 07:50:30

侧拉菜单的相关文章

自定义控件基础02_下拉刷新_侧拉菜单_自定义属性

自定义控件02 自定义控件 ①,纯粹自定义绘制 ②,在原生的基础上追加功能. 1,下拉刷新功能(继承ListView追加功能)(下拉刷新,加载更多,两个功能) 1.1 下拉刷新 ①创建一个类,继承ListView 创建自定义适配器,设置数据 额外:自定义控件会放到view包下 ②自定义控件的头(即下拉的时候显示的view) 推荐名称initHeaderView();在构造方法中初始化这个头 this.addHeaderView()//添加一个头布局的控件,在listView顶部添加一个头 头部u

Android侧拉菜单SlidingMenu的配置和使用

个人博客地址 www.zalezone.cn 前言 很多android菜单都做的很炫,其中用的做多的就数侧拉菜单了,比如说唱吧,以前的人人,当然也有很多客户端改版后可能用其他的了,但是SlidingMenu的确是一个很强大的工具. 环境配置 很多工具有炫丽的效果来吸引用户的眼球,但是这些炫丽的效果肯定需要一些代价,那就是很多代码的支持,这个项目页不例外,在配置环境时很有可能会遇到一系列问题,下面就写一下具体配置的步骤和可能遇到的问题. 准备工作 首先去网上下载相应的依赖工程,这里主要下载在git

DragLayout: QQ5.0侧拉菜单的新特效

一.项目概要 1.1 项目效果如图: 1.2 需要使用到的技术   ViewDragHelper: 要实现和QQ5.0侧滑的特效,需要借助谷歌在2013年I/O大会上发布的ViewDragHelper类,提供这个类目的就是为了解决拖拽滑动问题 1.3 侧滑菜单的实现方式 1. SlidingMenu 第三方库 2. DrawerLayout v4包中的类 3. 自定义控件 1.4 一些回调方法 - tryCaptureView: 用来决定是否可以拖动 - clampViewPositionHor

Android开源侧拉菜单SlidingMenu Demo 配置与学习

转载请注明出处:http://blog.csdn.net/zhoubin1992/article/details/46973483 前言 在Trinea的开源项目博文里 https://github.com/Trinea/android-open-project#%E4%B8%89menu 推荐了很多menu开源库. 首先给出Trinea里对SlidingMenu的介绍 滑出式菜单,通过拖动屏幕边缘滑出菜单,支持屏幕左右划出,支持菜单zoom.scale.slide up三种动画样式出现.与Me

使用DrawerLayout实现QQ5.0侧拉菜单效果

在上一篇文章中,我们介绍了怎么使用DrawerLayout来实现一个简单的侧拉菜单(使用DrawerLayout实现侧拉菜单),也就是我们常说的抽屉效果,GitHub上类似效果的实现方式非常多,实现出来的效果也是非常的绚丽,但是万变不离其宗,Google提供给我们的DrawerLayout才是最基本的,我们今天就来介绍一下怎样通过DrawerLayout来实现QQ5.0的侧拉效果.先来看一张效果图: 好,这是一个我们即将要实现的效果图,关于这个效果,大部分都是很简单的,都是使用了我们在上一篇博客

仿qq的侧拉菜单效果

自定义控件 import android.animation.ArgbEvaluator; import android.animation.FloatEvaluator; import android.content.Context; import android.graphics.Color; import android.graphics.PorterDuff; import android.support.v4.view.ViewCompat; import android.suppor

Drawerlayout侧拉菜单

xml <?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@

我的iOS库-侧拉菜单(模糊效果)

前言:这个小的开源库面前只是做了些基本的功能,暂时不支持设备旋转,另外模糊的类型还会调整.因为在初期,所以如果某些初学者的童鞋想要看看,我想还是有些借鉴意义的.(虽然我也是初学者). 项目地址 https://github.com/wenchenhuang/WCBlurSideMenu 静态截图 动图-按键触发 动图-边缘手势触发 目前: 支持代码和storyboard两种使用方式 不支持旋转 默认setting的大小为为屏幕的一半 支持不同尺寸的设备 原理 WCBlurView使用WWDC 2

事件拦截,仿qq侧拉的操作中

1,处理DrawerLayout自定义的侧拉菜单时候,当手指点击listview的时候,不起作用,就是因为 手指滑动稍微有一点x方向的动作,抽屉控件就请求父控件(listview)不要拦截,这样listview就 不能进行点击事件了 解决办法:在自定义view的触摸事件中onTouchEvent()方法中根据滑动距离和滑动时间来判断 itemView是否拦截父控件(ListView)的触摸事件 public boolean onTouchEvent(MotionEvent event) { ca