Android UI(三)SlidingMenu实现滑动菜单(详细 官方)

效果图:

求资源到首页上部加群即可。

一. SlidingMenu简介

github:https://github.com/jfeinstein10/SlidingMenu

官网上面的简介上翻译的:

SlidingMenu是能让开发者很容易的开发有滑动菜单App(像Google+,YouTube,Facebook)的开源android库。只要引入这个开源库的许可代码,就可以很容易免费的用在你想要滑动菜单的app。如下图所示:
                                                                                                 

 

二.官方小例子


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

public class SlidingExample extends Activity {

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setTitle(R.string.attach);

        // set the content view

        setContentView(R.layout.content);

        // configure the SlidingMenu

        SlidingMenu menu = new SlidingMenu(this);

        menu.setMode(SlidingMenu.LEFT);

        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

        menu.setShadowWidthRes(R.dimen.shadow_width);

        menu.setShadowDrawable(R.drawable.shadow);

        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);

        menu.setFadeDegree(0.35f);

        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);

        menu.setMenu(R.layout.menu);

    }

 

}

 

自然你也可以用xml定义一个slidingMenu


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

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

 

官方文档翻译如下:

  • viewAbove - 在菜单之上的布局引用
  • viewBehind - 在菜单之下的布局引用
  • touchModeAbove - 指那一部分屏幕触摸后视图显示
  • behindOffset - 菜单显示时,主体显示多少(单位像素)
  • behindWidth - 菜单显示,主体显示的宽。默认全屏
  • behindScrollScale - 菜单显示的滚动设置
  • shadowDrawable - 滚动阴影设置
  • shadowWidth - 滚动阴影的宽度
  • fadeEnabled - 滑动时菜单的是否渐变
  • fadeDegree - 滑动时的渐变程度

 

三.实现滑动菜单

主要结构:MainAct为主入口,然后各个fragment实现各自内容动作。

MainAct.java


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

public class MainAct extends FragmentActivity {

    private SlidingMenu menu;

     

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.slidingmenu_main);

         

        menu = new SlidingMenu(this);

        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

        menu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);

        menu.setShadowDrawable(R.drawable.slidingmenu_shadow);

        menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);

        DisplayMetrics dm = new DisplayMetrics();

        getWindowManager().getDefaultDisplay().getMetrics(dm);

        menu.setFadeDegree(0.35f);

        menu.setBehindOffset(dm.widthPixels*50/100);

        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);

         

         

        menu.setMode(SlidingMenu.LEFT_RIGHT);//这里模式设置为左右都有菜单,RIGHT显示右菜单,LEFT显示左菜单,LEFT_RIGH显示左右菜单

        menu.setContent(R.layout.slidingmenu_content);

        menu.setMenu(R.layout.slidingmenu_menu);

         

        menu.setSecondaryMenu(R.layout.slidingmenu_menu_2);

        menu.setSecondaryShadowDrawable(R.drawable.slidingmenu_shadow_2);

         

        getSupportFragmentManager()

            .beginTransaction()

            .replace(R.id.slidingmenu_content, new MainFragment(menu))

            .commit();//设置主页面内容

         

        getSupportFragmentManager()

            .beginTransaction()

            .replace(R.id.slidingmenu_menu, new MainLeftFragment())

            .commit();//设置左菜单内容

         

        getSupportFragmentManager()

            .beginTransaction()

            .replace(R.id.slidingmenu_menu_2, new MainRightFragment(menu))

            .commit();//设置右菜单内容

        

    }

}

 

总结:用则简单则难

时间: 2024-12-02 00:58:24

Android UI(三)SlidingMenu实现滑动菜单(详细 官方)的相关文章

Android UI实现SlidingMenu侧滑菜单效果_Android

本篇博客给大家分享一个效果比较好的侧滑菜单的Demo,实现点击左边菜单切换Fragment. 效果如下:   主Activity代码: package com.infzm.slidingmenu.demo; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.View; import android.view.View.OnClickListener; import andro

Android模仿美团顶部的滑动菜单实例代码

前言 本文主要给大家介绍了关于Android模仿美团顶部滑动菜单的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 先来看下效果图: 实现方法 这是通过 ViewPager 和 GridView 相结合做出来的效果,每一个 ViewPager 页面都是一个 GridView,底部的每个滑动指示圆点都是从布局文件中 inflate 出来的 首先需要一个代表每个活动主题的 JavaBean /** * Created by CZY on 2017/6/23. */ publ

Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框

一.前言     继续AndroidUI系列,泥瓦匠又要开始扯淡了.哈哈今天在文章头加了个支付宝账号.我也真逗,至今没收到一笔是写博客的钱.或是分享的.泥瓦匠也就挂着逗逗乐而已.笑着就笑吧,我也在笑了.     和我的师傅扯着蛋.也教授了泥瓦匠很多东西.泥瓦匠一直在学习,一直在进步而已.这是师傅送我的话: 睡少点,玩少点,分清主次拍优先级.还要发挥同伴的能力,不是什么事情都要自己做的. 二.正文     今天要讲的内容很多.还是主要大家去看代码吧.我把主要的东西,介绍下.然后给源码自己参透吧.下

Android程序开发之使用Design包实现QQ动画侧滑效果和滑动菜单导航_Android

Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,在这个support库里面,Google给我们提供了更加规范的MD设计风格的控件.最重要的是,Android Design Support Library的兼容性更广,直接可以向下兼容到Android 2.2.这不得不说是一个良心之作. 使用方法很简单,只需要添加一句依赖 compile 'com.android

Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效

记得在很早之前,我写了一篇关于Android滑动菜单的文章,其中有一个朋友在评论中留言,希望我可以 帮他将这个滑动菜单改成双向滑动的方式.当时也没想花太多时间,简单修改了一下就发给了他,结果没想 到后来却有一大批的朋友都来问我要这份双向滑动菜单的代码.由于这份代码写得很不用心,我发了部分朋 友之后实在不忍心继续发下去了,于是决定专门写一篇文章来介绍更好的Android双向滑动菜单的实现方法. 在开始动手之前先来讲一下实现原理,在一个Activity的布局中需要有三部分,一个是左侧菜单的布 局,一

【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏

    PS:这是转载CSDN作者yangyu20121224的文章,真的非常不错.它主要讲述如何通过Fragment碎片实现点击TabHost切换页面.可惜作者很长时间没有更新了,他写的那系列文章都很实用.以后在做Android布局时会用到该篇文章内容,所以转载作为在线笔记.希望对大家也有所帮助吧!    转载源地址:http://blog.csdn.net/yangyu20121224/article/details/9016223     在上一篇文章中,我们花了大量的篇幅来讲解Fragm

Android开源组件SlidingMenu侧滑菜单使用介绍_Android

现在很多android应用都有侧滑菜单,效果很不错. GitHub上有SlidingMenu的开源库,使用起来很方便. SlidingMenu GitHub地址:https://github.com/jfeinstein10/SlidingMenu.GitHub上说,Sliding结合ActionBarSherlock使用功能可以更丰富,ActionBarSherlock GitHub地址:https://github.com/JakeWharton/ActionBarSherlock 附csd

Android开源组件SlidingMenu侧滑菜单使用介绍

现在很多android应用都有侧滑菜单,效果很不错. GitHub上有SlidingMenu的开源库,使用起来很方便. SlidingMenu GitHub地址:https://github.com/jfeinstein10/SlidingMenu.GitHub上说,Sliding结合ActionBarSherlock使用功能可以更丰富,ActionBarSherlock GitHub地址:https://github.com/JakeWharton/ActionBarSherlock 附csd

Android滑动菜单框架完全解析,教你如何一分钟实现滑动菜单特效

之前我向大家介绍了史上最简单的滑动菜单的实现方式,相信大家都还记得.如果忘记了其中的实现原理 或者还没看过的朋友,请先去看一遍之前的文章 Android滑动菜单特效实现,仿人人客户端侧滑效果,史上 最简单的侧滑实现 ,因为我们今天要实现的滑动菜单框架也是基于同样的原理的. 之前的文章中在 最后也提到了,如果是你的应用程序中有很多个Activity都需要加入滑动菜单的功能,那么每个Activity都 要写上百行的代码才能实现效果,再简单的滑动菜单实现方案也没用.因此我们今天要实现一个滑动菜单的 框