专栏首页andy的小窝自定义菜单的实现

自定义菜单的实现

gradle 引入

compile 'com.github.fg2q1q3q:DropDownMenu:1.1.1'
dorpmenu(修改过的部分类,增加了GirdLayout 的动态添加)
    private String headers[] = {"综合排序", "商品类别", "价格筛选"};
    private int[] types = new int[]{MyDropDownMenu.TYPE_LIST_CITY, MyDropDownMenu.TYPE_GRID, MyDropDownMenu.TYPE_CUSTOM};
    private String methods[] = {"综合排序", "按价格升序", "按价格降序", "按销量降序"};
    private String ages[] = {"更新时间", "最新更新", "综合排序"};
    private String constellations[] = {"全部类别"};
    //contentView 为下拉菜单的view
   contentView = getLayoutInflater().inflate(R.layout.contentview, null);
   dropDownMenu=(MyDropDownMenu) findViewById(R.id.dropDownMenu);
  dropDownMenu.addMenuSelectListener(new MyDropDownMenu.OnDefultMenuSelectListener() {
            @Override
            public void onSelectDefaultMenu(int index, int pos, String clickstr) {
                //index:点击的tab索引,pos:单项菜单中点击的位置索引,clickstr:点击位置的字符串
                //排序
                if (index == 0) {
                    if (pos == 0) {
                        type = "0";
                    } else if (pos == 1) {
                        type = "1";
                    } else if (pos == 2) {
                        type = "2";
                    } else if (pos == 3) {
                        type = "3";
                    } else {
                        type = "0";
                    }
                    page = 1;
                } 
            }
        });
 dropDownMenu.setDropDownMenu(Arrays.asList(headers), initViewData(), contentView);
    /**
     * 设置类型和数据源:
     * DropDownMenu.KEY对应类型(DropDownMenu中的常量,参考上述核心源码) 此处的MyDropDownMenu是上面下载的自定义的MyDropDownMenu
     * DropDownMenu.VALUE对应数据源:key不是TYPE_CUSTOM则传递string[],key是TYPE_CUSTOM类型则传递对应view
     */
    private List<HashMap<String, Object>> initViewData() {
        List<HashMap<String, Object>> viewDatas = new ArrayList<>();
        HashMap<String, Object> map;
        for (int i = 0; i < headers.length; i++) {
            map = new HashMap<String, Object>();
            map.put(MyDropDownMenu.KEY, types[i]);
            switch (types[i]) {
                case MyDropDownMenu.TYPE_LIST_CITY:
                    map.put(MyDropDownMenu.VALUE, methods);
                    map.put(MyDropDownMenu.SELECT_POSITION, 0);
                    break;
                case MyDropDownMenu.TYPE_LIST_SIMPLE:
                    map.put(MyDropDownMenu.VALUE, ages);
                    map.put(MyDropDownMenu.SELECT_POSITION, 0);
                    break;
                case MyDropDownMenu.TYPE_GRID:
                    map.put(MyDropDownMenu.VALUE, constellations);
                    break;
                default:
                    map.put(MyDropDownMenu.VALUE, getCustomView());
                    break;
            }
            viewDatas.add(map);
        }
        return viewDatas;
    }
    private View getCustomView() {
        View v = getLayoutInflater().inflate(R.layout.custom, null);
        return v;
    }

针对Girdlayout 可以调用refreshGridItem来动态添加 GirdLayout 的内容。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • RxJava2 的关键字zip的实际应用

    在做乐享大学客户端的时候遇到这样的情况,就是要在用户登陆的情况下要获取的用户个人数据跟首页的数据进行合并再传递到activity,这里用RxJava2 的关键字...

    用户4458175
  • 关于Rxjava2下的RxBus实现

    用户4458175
  • 一个自定义圆形图片控件

    一个圆形控件来自:http://blog.csdn.net/dacainiao007/article/details/43983271

    用户4458175
  • vue 手写一个时间选择器

    最近研究了 DatePicker 的实现原理后做了一个 vue 的 DatePicker 组件,今天带大家一步一步实现 DatePicker 的 vue 组件。

    小皮咖
  • android 白屏

    从首篇介绍我为什么写文章到现在已经过去好久.......(懒),但从此刻开始,不出意外情况每周给大家至少写一篇文章,就按平时app开发流程以及本人遇到的问题,从...

    android_薛之涛
  • [HTML] websocket的模拟日志监控界面

    模拟命令行的界面效果,使用swoole作为websocket的服务,重新做了下html的界面效果

    陶士涵
  • 【ES6基础】Map与WeakMap

    ES6里除了增加了Set(集合)类型外(笔者在这篇文章《Set与WeakSet》有过介绍),今天的这篇文章笔者将继续介绍ES6引入的新类型——Map(映射类型)...

    前端达人
  • Android自定义流式布局/自动换行布局实例

    最近,Google开源了一个流式排版库“FlexboxLayout”,功能强大,支持多种排版方式,如各种方向的自动换行等,具体资料各位可搜索学习^_^。

    砸漏
  • Hbase-2.0.0_01_安装部署

    建议在 /app/zookeeper,因为在启动时,会有相关日志产生

    踏歌行
  • .net持续集成sonarqube篇之sonarqube基本操作(二)

    Activity界面主要是对多次构建管理界面,主要是帮助管理员快速了解项目每次构建与以往构建相比问题是增加了还是减少了等指标.由于目前我们仅进行了一次构建,因此...

    Edison.Ma

扫码关注云+社区

领取腾讯云代金券