说到下拉导航菜单这个东西用得还真不少,细心算一下做开发以来这样的菜单已经写了第三次了,但基本都是不能复用。感觉特累人。
不经意看到同事写一个类似的下拉菜单,但他引用了开源库仿大众菜单的库,大致看了一下,感觉挺不错的,复用性也比较好,但要

是换成别的样式就要去修改代码了,感觉这有点不方便也比较容易出错。于是参照他的大致思路写了一个仿下拉菜单。

具体的实现就不多说了,觉得有意思的话可以下来看看。下面说一下使用方法吧:

1、添加navbarview包下的代码与对应资源

2、布局文件中添加:

<com.mr_mo.mdnavbarview.navbarview.MDNavBarView
android:id="@+id/mdNavBarView"
android:layout_width="match_parent"
android:layout_height="match_parent"> <ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"/> </com.mr_mo.mdnavbarview.navbarview.MDNavBarView>

3、添加导航item:

INavBarItemView itemViewAdress = new MDNavBarItemTitleView(this);
itemViewAdress.setTitle("地区");
// itemViewAdress.setTitleColorSelect(Color.RED); INavBarItemView itemViewTime = new MDNavBarItemTitleView(this);
itemViewTime.setTitle("时间段");
// itemViewTime.setTitleColorSelect(Color.RED); INavBarItemView itemViewFilter = new MDNavBarItemTitleView(this);
itemViewFilter.setTitle("筛选");
// itemViewFilter.setTitleColorSelect(Color.RED); List list = new ArrayList();
list.add(itemViewAdress);
list.add(itemViewTime);
list.add(itemViewFilter); mdNavBarView.setNavBarItemView(list);
mdNavBarView.setNavBarViewBGColor(Color.WHITE);

4、添加导航对应的item操作页面

 MDNavBarPopupSortView sortView1 = new MDNavBarPopupSortView(this);
sortView1.setBackgroundColor(Color.YELLOW);
sortView1.setNavBarPopupViewHeight(210);//设置下拉菜单的高度
sortView1.setOnNavBarPopupSelectListener(new NavBarPopupSelectListener() {
@Override
public void onSelect(View view, int index, Object itemData) {
mdNavBarView.hide();
mdNavBarView.isShowNavBarItemIcon(false, index);
NavBarSortModel model = (NavBarSortModel) itemData;
mdNavBarView.setNavBarItemTitle(model.getTitle(), index);//更新导航标题
}
}); List listOperateView = new ArrayList();
listOperateView.add(sortView);
listOperateView.add(sortView1);
listOperateView.add(sortView2);
mdNavBarView.setNavBarPopupOperateView(listOperateView);

上面介绍的是内置的样式,下面说说如何拓展自己的样式

1、自定义导航菜单的item,在自己的实现类中继承INavBarItemView并实现里面的所有方法,具体可以参考MDNavBarItemTitleView.java

2、自定义导航菜单对应的操作界面,在自己的实现类中继承INavBarPopupView并实现里面的所有方法,具体可以参考MDNavBarPopupSortView.java

有兴趣的朋友下载来看看:https://github.com/MrxMo/MDNavBarView

效果图:

最新文章

  1. 【转】WPF 窗体淡入淡出动画
  2. document.documentElement.clientWidth
  3. ASP.NET MVC中的错误-友好的处理方法
  4. cocos2dx中的定时器及其分类
  5. hdfs[命令] fsck
  6. java 布尔值一种赋值方法
  7. 汇编实现HelloWorl!
  8. java课程设计--WeTalk(201521123072秦贞一)
  9. c#简单实现二维数组和二维数组列表List&amp;lt;&amp;gt;的转置
  10. 一个任务:(小甲鱼python视频第29讲) 代码整理与总结
  11. 【听大佬rqy分享有感】
  12. Codeforces909D Colorful Points(缩点)
  13. ActiveMQ使用介绍及实例
  14. js arrayBuffer 字节序问题,小端法,大端法
  15. TouchSlide 插件使用介绍
  16. Qt ------ QTableView QTableWidget
  17. 高速Android开发系列通信篇之EventBus
  18. 新手学习selenium路线图(老司机亲手绘制)-学前篇
  19. LCD1602小程序
  20. windows线程时间打印

热门文章

  1. Unable to execute dex: Multiple dex files define 解决方法
  2. Unity实现相似于安卓原生项目的点击安卓返回button回到前一页的功能
  3. COM组件入门(一)
  4. Codeforces Round #336 (Div. 2) C. Chain Reaction set维护dp
  5. Nazo解密游戏攻略
  6. Java学习笔记(4)——JavaSE
  7. Android Compatibility package 兼容性开发套件
  8. innodb 变量
  9. javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher--转载
  10. spark1.2.0编译