开放的源地址:https://github.com/SimonVT/android-menudrawer

简单介绍:menudrawer是跟sliderMenu差点儿相同的一种框架,常被应用做设置界面,以menu作为设置菜单,contentView作为具体页面的框架,例如以下图

API具体解释:

****************************左边MenuDrawer***************************************

1.设置主页

menuDrawer=MenuDrawer.attach(this,MenuDrawer.MENU_DRAG_CONTENT);

menuDrawer.setContentView(R.layout.activity_main);

2.设置Menu页/高度

menuDrawer.setMenuView(mListView);

menuDrawer.setMenuSize(getWindowManager().getDefaultDisplay().getWidth());

3.主/Menu页相互跳转

menuDrawer.toggleMenu();

4.关闭Menu页

menuDrawer.closeMenu();





5.右边标示的保存和滑动:

getView(设置Tag):  v.setTag(R.id.mdActiveViewPosition, position);

OnItemClickListener(设置当前活跃Item):menuDrawer.setActiveView(v,position);





6.滑动时(刷新指示标示)

mListView.setOnScrollListener(new OnScrollListener() {



@Override

public void onScrollStateChanged(AbsListView view, int scrollState) {

}



@Override

public void onScroll(AbsListView view, int firstVisibleItem,

int visibleItemCount, int totalItemCount) {

menuDrawer.invalidate();

}

});





7.设置拖动有效的区域

menuDrawer.setTouchMode(MenuDrawer.TOUCH_MODE_FULLSCREEN);





8.第4个參数推断是否能被拖动

menuDrawer=MenuDrawer.attach(this,MenuDrawer.MENU_DRAG_CONTENT,Position.RIGHT,true);





****************************右/上下边MenuDrawer***************************************

1.设置主页(第3个參数提供了菜单的4个方向)

menuDrawer=MenuDrawer.attach(this,MenuDrawer.MENU_DRAG_CONTENT, Position.RIGHT);

2.改动指示器的位置:

1)在AndroidManifest.xml中改动样式

android:theme="@style/SampleTheme.Right"

2)在theme.xml中改动:

<style name="SampleBase" parent="@android:style/Theme.Holo.Light" />





<style name="SampleTheme.Right" parent="SampleBase">

   <item name="menuDrawerStyle">@style/MenuDrawerStyle.Right</item>

</style>

3)在style.xml中改动:

<style name="MenuDrawerStyle.Right" parent="Widget.MenuDrawer">

        <item name="mdActiveIndicator">@drawable/menu_arrow_right</item>

        <item name="mdMenuSize">200dp</item>

</style>





****************************自己定义MenuDrawer***************************************

XML:

View层必须是net.simonvt.menudrawer.TopDrawer四种中的一种定义

menu页的id必须为android:id="@id/mdMenu"

主页的id必须是android:id="@id/mdContent"

代码:设置手动模式并设置menu宽/高

menuDrawer.setTouchMode(MenuDrawer.TOUCH_MODE_FULLSCREEN);

menuDrawer.setMenuSize(50);

定义指示位置:(指示标的显示得由manifest文件中面的theme指定)menuDrawer.setActiveView(v);





****************************MenuDrawer+ViewPager***************************************

Tip:1)主页实现FragmentActivity;

2)在onPageChangeListener中onPageSelected实现:

menuDrawer.setTouchMode(position==0?MenuDrawer.TOUCH_MODE_FULLSCREEN:MenuDrawer.TOUCH_MODE_NONE);

版权声明:本文博客原创文章。博客,未经同意,不得转载。

Android开源--MenuDrawer的更多相关文章

  1. Android开源项目分类汇总

    目前包括: Android开源项目第一篇——个性化控件(View)篇   包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView. ...

  2. 100个Github上Android开源库

    项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, ...

  3. GitHub上史上最全的Android开源项目分类汇总 (转)

    GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...

  4. GitHub 优秀的 Android 开源项目(转)

    今天查找资源时看到的一篇文章,总结了很多实用资源,十分感谢原作者分享. 转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介 ...

  5. GitHub上排名前100的Android开源库介绍(来自github)

    本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍,至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果,然后过滤了 ...

  6. GitHub Top 100的Android开源库

    摘要: 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索Java语言选择「Best M... 本项目主要对目前 GitH ...

  7. GitHub上史上最全的Android开源项目分类汇总

    今天在看博客的时候,无意中发现了 @Trinea 在GitHub上的一个项目 Android开源项目分类汇总 ,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参考价值,包括很炫 ...

  8. GitHub 优秀的 Android 开源项目

    转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...

  9. 那些年不错的Android开源项目

    那些年不错的Android开源项目 转载自 eoe 那些年不错的Android开源项目-个性化控件篇 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.Acti ...

随机推荐

  1. 三——第二部分——第二篇论文 计划建设SQL Server镜像

    本文接着前面的章节:SQL Server镜像简单介绍 本文出处:http://blog.csdn.net/dba_huangzj/article/details/27203053 俗话说:工欲善其事必 ...

  2. Haskell 几乎无疼痛入门指南

    当他重装Linux 机会虚拟机,安装 haskell 录制的过程中有什么.的方式来帮助那些谁在徘徊haskell进入外读者. 基本概念: Haskell : 是一门通用函数式语言.差点儿能够进行不论什 ...

  3. 剖析html对标准标签和自定义标签闭合与不闭合渲染问题

    昨天在修改去年写的系统的时候无意中看到了当时写的一个利用标准标签未闭合在单元格内把整个单元格颜色渲染成红色的效果,如下: 当时的问题是从后台返回来的是个int整数而%是写在页面上的如图 这 时候就出现 ...

  4. jqm视频播放器,html5视频播放器,html5音乐播放器,html5媒体播放器,video开展demo,html5视频播放演示示例,html5移动视频播放器

    最近看到很多有用的论坛html5视频播放的发展,音乐播放功能,大多数都在寻找答案.所以,我在这里做一个demo.对于大家互相学习.html5开发越来越流行,至于这也是一个不可缺少的一部分的视频. 如何 ...

  5. 从xcode 6 上传 App Store

    2014苹果结束了大会,ios8公布.可怜的苹果开发人员又要開始伤脑筋了. 比方提交新产品的那个iTunes connect体验就做得极烂.并且这还是本菜鸟的第一次上线提交.折寿啊 一.制作证书.ap ...

  6. 了解HTML5和“她”的 API (二)

    Communication(通信)     Cross Document Messaging (跨文档消息通信) postMessage API   origin security(源安全) chat ...

  7. C#设计及其UML(反向工程)

    OOP之C#设计及其UML(反向工程)   现在总结一下C#类关键字(virtual.abstract.override.new.sealed)的使用(以C#代码体现),并再次熟悉一下OOP思想,使用 ...

  8. 《Hadoop》对于高级编程Hadoop实现构建企业级安全解决方案

    本章小结 ●    理解企业级应用的安全顾虑 ●    理解Hadoop尚未为企业级应用提供的安全机制 ●    考察用于构建企业级安全解决方式的方法 第10章讨论了Hadoop安全性以及Hadoop ...

  9. NET功能集

    NET功能集 目录 1. ObsoleteAttribute2. 设置默认值属性: DefaultValueAttribute3. DebuggerBrowsableAttribute4. ??运算符 ...

  10. HDU 4309 Seikimatsu Occult Tonneru 网络流量+像缩进

    主题链接:点击打开链接 意甲冠军: 题意:给出一张N(N<=100)个点,M(M<=1000条)边的有向图. 每一个点上都有一些人.每条边有4个属性(u,v,w,p). 这些边分为三种:( ...