仿大众点评下拉菜单实现
2019独角兽企业重金招聘Python工程师标准>>>
今天给大家带了一个好用的控件,大众点评的下拉菜单,当然是仿照显示效果实现的。实现下拉菜单我第一个想到的就是popupwindow。是的,我这里确实使用popupwindow实现的。
因为不同的菜单里面的头部tabbar的个数不一样而且样式也可能不一样,有些里面是listview,有些里面是按钮和一些其他的控件,所以我的思路就渐渐清晰了。
首先,我想构造一个基于LinearLayout的控件,里面动态生成下拉菜单的tab的个数,并控制作为下拉菜单的popupwindow显示隐藏动画效果,即ExpandTabView.java(在源码中)这个类。
然后根据每个菜单子项显示的内容不同,构造不同的组件,传入ExpandTabView中,让其接受ExpandTabView的控制。这样可以保证每个菜单子项的独立性,可以进行各自的风格化,达到高内聚低耦合的效果。同时为了每个菜单子项有一些通用的行为,我在这里构造了一个基类ViewBaseAction.java。
再有就是listview在popupwindow中有个奇怪的现象当popupwindow设置为popupWindow.setFocusable(false)的时候,里面的listview的监听事件失效了,我们只能通过自己构造的监听事件来监听listview的onitemclick事件。具体实现方式详见TextAdapter.java这个类。
效果图如下:
Demo地址:https://github.com/yueyueniao2012/ExpandTabView
转载于:https://my.oschina.net/yyn2010/blog/112183
仿大众点评下拉菜单实现相关推荐
- android 美团下拉菜单,Android仿美团分类下拉菜单实例代码
本文实例为大家分享了Android仿美团下拉菜单的实现代码,分类进行选择,供大家参考,具体内容如下 效果图 操作平台 AS2.0 第三方框架:butterknife build.gradle depe ...
- 仿百度的下拉菜单原生js
废话不多说直接上demo 登录 微博登录 百度登录 网易登录 设置 微博登录 百度登录 网易登录 学术 微博登录 百度登录 网易登录 js如下:注释的是最不用动脑子的想法:没有注释就涉及到闭包的问题, ...
- 美团,大众下拉菜单的实现
最近项目中用到了类似美团,大众的下拉菜单.于是上网找资料,下了个demo,两个listview实现的,感觉不是很好,后面又找到了ExpandTab这个自定义控件,封装了两个listvie ...
- 微信小程序仿闲鱼『下拉菜单』
下拉菜单我们非常常见了,但是要在微信小程序中实现并不容易,今天带来的是仿闲鱼下拉菜单,相信对您有一定的帮助~~ 先看效果: 麻雀虽小五脏俱全,此效果很复杂,我们将其拆分为多个步骤来分析~ 1)tab状 ...
- 【ExpandTabView】Android 仿大众,美团下拉菜单ExpandTabView
原文地址:https://github.com/yueyueniao2012/ExpandTabView 参考地址:http://blog.csdn.net/minimicall/article/de ...
- android 实现仿QQ登录可编辑下拉菜单
今天,简单讲讲android里如何实现向QQ一样的登录后记住用户名的下拉框. 这个其实也很简单,网上搜索了一下,很多相关的资料,基本都是PopupWindow+ListView的方式,实现起来比较灵活 ...
- Android实现仿QQ登录可编辑下拉菜单
Android实现仿QQ登录可编辑下拉菜单 在Android里,直接提供的Spinner控件虽然可以实现下拉菜单的效果,但其效果并不理想,很多时候我们需要类似手机QQ那样既可以在文本框中直接输入编辑文 ...
- 仿美团下拉菜单 html,React Native仿美团下拉菜单的实例代码
本文介绍了React Native仿美团下拉菜单的实例代码,最近也在学习React Native,顺便分享给大家 在很多产品中都会涉及到下拉菜单选择功能,用的最好的当属美团了,其效果如下: 要实现上面 ...
- CSS+JS仿QQ面板风格的多级折叠下拉菜单
<html><head><title>CSS+JS仿QQ面板风格的多级折叠下拉菜单丨石家庄玻璃隔断|石家庄自动门</title><style ty ...
- JS+CSS打造仿QQ面板的三级折叠下拉菜单
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
最新文章
- 2021年春季学期-信号与系统-第二次作业参考答案-第八小题
- python语言入门pdf-Python编程从入门到精通.pdf
- linux c嵌入汇编语言,Linux 下的C和Intel 汇编语言混用
- Android Context.bindService 返回 false 问题
- python37下载_pythoncom37.dll 3.7.224.0
- 方法的重写、重载及隐藏
- python 生成器原理_python生成器
- iptables详解(2):iptables管理
- php中的oop思想,oop_php oop思想_oop和ood
- 如何实现java编写告白程序,程序员如何实现表白代码
- win10系统备份教程
- Google着手与 Open AI 合作预防人工智能暴走
- 本人重装后的一些操作需求
- 黑客攻击第二次,开redis一瞬间
- matlab-colormap-contourf函数
- fgets 函数详解
- Jmeter:Generate HTML report 导出HTML测试报告
- android简易学生信息,Android studio应用程序设计——简单的学生信息录入应用app
- 影响互联网产品节奏的五大因素
- Java 批量处理数据
热门文章
- 适应adblock plus 规则的简单正则表达式匹配
- LOJ2257 SNOI2017 遗失的答案 容斥、高维前缀和
- System.Timers.Timer(定时器)
- 汇编实现: C库常见函数,串操作指令作用
- 5个提高效率的编程工作环境
- kvm+libvirt虚拟机快照浅析[转]
- Windows7 环境下 VS2008 C++链接错误!
- 分组取出值最大的数据
- (1.2)mysql 索引概念
- charles抓包https/模拟弱网/设置断点/修改接口请求值或返回值/压测