Android开源--MenuDrawer
开放的源地址: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的更多相关文章
- Android开源项目分类汇总
目前包括: Android开源项目第一篇——个性化控件(View)篇 包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView. ...
- 100个Github上Android开源库
项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, ...
- GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
- GitHub 优秀的 Android 开源项目(转)
今天查找资源时看到的一篇文章,总结了很多实用资源,十分感谢原作者分享. 转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介 ...
- GitHub上排名前100的Android开源库介绍(来自github)
本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍,至于排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果,然后过滤了 ...
- GitHub Top 100的Android开源库
摘要: 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索Java语言选择「Best M... 本项目主要对目前 GitH ...
- GitHub上史上最全的Android开源项目分类汇总
今天在看博客的时候,无意中发现了 @Trinea 在GitHub上的一个项目 Android开源项目分类汇总 ,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参考价值,包括很炫 ...
- GitHub 优秀的 Android 开源项目
转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...
- 那些年不错的Android开源项目
那些年不错的Android开源项目 转载自 eoe 那些年不错的Android开源项目-个性化控件篇 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.Acti ...
随机推荐
- [勘探开发]成绩,全栈开发,健全&借贷
开发探索的一些update: 将结果做为开发的基础和终极目标 开发人员从过程的追求到最后结果的追求是一个质变的过程.相当于NBA中得分王和总冠军的差别: 一个是完毕一个局部的本职工作(有时候会和项目的 ...
- 使用 Gradle 插件进行代码分析(转)
代码分析在大多数项目中通常是作为最后一个步骤(如果做了的话)完成的.其通常难以配置及与现有代码整合. 本文旨在勾勒出使用 Gradle 整合 PMD 与 FindBugs 的步骤,并将其与一个现有的 ...
- [LeetCode217]Contains Duplicate
题目:Given an array of integers, find if the array contains any duplicates. Your function should retur ...
- struts开发步骤
说来惭愧.这是一个简单的struts折腾了很长一段时间,几乎相同的时间量就花了三天时间来解决.下面的步骤总结一下我开发:(我使用的是MyEclipse); 1.新建一个Exercise3的web Pr ...
- 开放Nginx在文件夹列表功能
nginx在列出的默认同意整个文件夹.你怎么转Nginx在文件夹列表功能?打开nginx.conf文件.在location server 要么 http段增加 autoindex on;另外两个參数最 ...
- StackExchange.Redis 使用-发布订阅 (二)
使用Redis的发布订阅功能 redis另一个常见的用途是发布订阅功能 . 它非常的简单 ,当连接失败时 ConnectionMultiplexer 会自动重新进行订阅 . ISubscriber s ...
- 跨域 Iframe 通信解决方案(兼容 IE 系列浏览器。)
实现思路: 1.postMessage(IE8+, Firefox 3.1+, Opera 9+, Safari, and Chrome) 2.利用window.navigator共享信息,使支持IE ...
- ftk学习记录(形成全屏幕套件)
[声明:版权全部.欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 好久不写博客了.今天续上. 可是,我们还是看一下上一期的执行结果, watermark/2/te ...
- JAVA学习篇--JSTL基金会
JSTL什么 JSTL(JSP Standard TagLibrary,JSP标准标签库)是一个不断完好的开放源码的JSP标签库. 为什么要用JSTL 我们JSP用于开发信息展现页很方便;也能够嵌入j ...
- Team Foundation Server 2015使用教程--团队项目创建