筛选菜单库DropDownMenu_.zip
DropDownMenu是一个筛选菜单库,开发者只需要填充数据即可,在很多App上都能看到这个效果,如美团,某视频网站,大众点评等。简介本例是在DropDownMenu基础上改进而来相比而言增加de特性:增加三种默认样式类型:TYPE_LIST_CITY,TYPE_LIST_SIMPLE,TYPE_GRID增加默认样式点击回调(只需关心传入数组和选择结果,不相关内容无须关心)修改传参,更易于理解和使用增加最大高度限制属性如果你使用默认样式,只需要传递字符串数组即可,如果使用自定义样式只需传递customview即可以下为原始特性:支持多级菜单你可以完全自定义你的菜单样式,我这里只是封装了一些实用的方法,Tab的切换效果,菜单显示隐藏效果等并非用popupWindow实现,无卡顿软件截图Gradle在project 中build.gradle下增加(已有跳过) allprojects { repositories { ... maven { url "https://jitpack.io" } } }在app module中增加 dependencies { compile 'com.github.fg2q1q3q:DropDownMenu:1.0.0' }使用相关核心源码及参数说明: //一共包含四种类型:三种默认类型和自定义 public static final int TYPE_LIST_CITY = 1; public static final int TYPE_LIST_SIMPLE = 2; public static final int TYPE_GRID = 3; public static final int TYPE_CUSTOM = 4; /** * @param tabTexts tab标签字符串集合 * @param contentView 主页面view * @param viewDatas 为数据源hashmap * KEY对应TYPE(上文常量) * VALUE对应数据源(非TYPE_CUSTOM-->string[]或TYPE_CUSTOM-->customView) */ public void setDropDownMenu(@NonNull List<String> tabTexts, @NonNull List<HashMap>> viewDatas,@NonNull View contentView){ }使用教程添加DropDownMenu 到你的布局文件,如下<com android:id="@ id/dropDownMenu" android:layout_width="match_parent" android:layout_height="match_parent" app:ddmenuTextSize="13sp" app:ddtextUnselectedColor="@color/drop_down_unselected" app:ddtextSelectedColor="@color/drop_down_selected" app:dddividerColor="@color/gray" app:ddunderlineColor="@color/gray" app:ddmenuSelectedIcon="@mipmap/drop_down_selected_icon" app:ddmenuUnselectedIcon="@mipmap/drop_down_unselected_icon" app:ddmaskColor="@color/mask_color" app:ddmenuBackgroundColor="@color/white" app:ddmenuMaxHeight="280dp">java代码中设置如下: View contentView = getLayoutInflater().inflate(R.layout.contentview, null); mDropDownMenu.setDropDownMenu(Arrays.asList(headers), initViewData(), contentView); //该监听回调只监听默认类型,如果是自定义view请自行设置监听,参照demo mDropDownMenu.addMenuSelectListener(new DropDownMenu.OnDefultMenuSelectListener() { @Override public void onSelectDefaultMenu(int index, int pos,String clickstr) { //index:点击的tab索引,pos:单项菜单中点击的位置索引,clickstr:点击位置的字符串 Toast.makeText(getBaseContext(),clickstr,Toast.LENGTH_SHORT).show(); } });
- 1
- 粉丝: 413
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Vue3、.NET8的mes-TMom生产制造系统设计源码
- 基于FPGA的灰度直方图均衡算法IP verilog源码 适用于Altera平台,封装好的IP,可直接在Qsys中调用 本为封装好的IP源码,经过Modelsim仿真验证和开发板功能验证OK
- 基于Python和HTML的气象数据分析系统设计与实现源码
- 基于Spring Boot的quartz分布式定时任务设计源码
- 安川代码移植的主板原理图 无pcb 采用瑞萨芯片
- 基于Python的平面五杆机构狗腿形态学/小贱钟模拟器设计源码
- PSO-BP粒子群优化BP神经网络多输入多输出(Matlab完整源码和数据)
- Pscad仿真模型程序-中低压交直流混合微电网协调控制和并离网切仿真 具体工况:DC-AC-LVGrid-End1:并离网切仿真,负载和电源功率不扰动DC-AC-LVGrid-End2:并离网切,负载
- 基于Java的跨平台数据流处理框架Sylph设计源码
- 基于Java语言的公开Webservice调用天气预报功能设计源码
- 基于Java及HTML的温州理工学院web应用系统开发课程课件设计源码
- 基于Vue3框架的LYMusic音乐网站设计源码
- 基于ThinkPHP的caozha-tp-comment轻量级评论系统设计源码
- HFSS仿真实例模型文件
- 基于阿里巴巴Java开发手册的在线版JavaScript+CSS+HTML设计源码
- 基于Java OSS API的统一对象存储操作设计源码