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

仿大众点评下拉菜单实现相关推荐

  1. android 美团下拉菜单,Android仿美团分类下拉菜单实例代码

    本文实例为大家分享了Android仿美团下拉菜单的实现代码,分类进行选择,供大家参考,具体内容如下 效果图 操作平台 AS2.0 第三方框架:butterknife build.gradle depe ...

  2. 仿百度的下拉菜单原生js

    废话不多说直接上demo 登录 微博登录 百度登录 网易登录 设置 微博登录 百度登录 网易登录 学术 微博登录 百度登录 网易登录 js如下:注释的是最不用动脑子的想法:没有注释就涉及到闭包的问题, ...

  3. 美团,大众下拉菜单的实现

           最近项目中用到了类似美团,大众的下拉菜单.于是上网找资料,下了个demo,两个listview实现的,感觉不是很好,后面又找到了ExpandTab这个自定义控件,封装了两个listvie ...

  4. 微信小程序仿闲鱼『下拉菜单』

    下拉菜单我们非常常见了,但是要在微信小程序中实现并不容易,今天带来的是仿闲鱼下拉菜单,相信对您有一定的帮助~~ 先看效果: 麻雀虽小五脏俱全,此效果很复杂,我们将其拆分为多个步骤来分析~ 1)tab状 ...

  5. 【ExpandTabView】Android 仿大众,美团下拉菜单ExpandTabView

    原文地址:https://github.com/yueyueniao2012/ExpandTabView 参考地址:http://blog.csdn.net/minimicall/article/de ...

  6. android 实现仿QQ登录可编辑下拉菜单

    今天,简单讲讲android里如何实现向QQ一样的登录后记住用户名的下拉框. 这个其实也很简单,网上搜索了一下,很多相关的资料,基本都是PopupWindow+ListView的方式,实现起来比较灵活 ...

  7. ​Android实现仿QQ登录可编辑下拉菜单

    Android实现仿QQ登录可编辑下拉菜单 在Android里,直接提供的Spinner控件虽然可以实现下拉菜单的效果,但其效果并不理想,很多时候我们需要类似手机QQ那样既可以在文本框中直接输入编辑文 ...

  8. 仿美团下拉菜单 html,React Native仿美团下拉菜单的实例代码

    本文介绍了React Native仿美团下拉菜单的实例代码,最近也在学习React Native,顺便分享给大家 在很多产品中都会涉及到下拉菜单选择功能,用的最好的当属美团了,其效果如下: 要实现上面 ...

  9. CSS+JS仿QQ面板风格的多级折叠下拉菜单

    <html><head><title>CSS+JS仿QQ面板风格的多级折叠下拉菜单丨石家庄玻璃隔断|石家庄自动门</title><style ty ...

  10. JS+CSS打造仿QQ面板的三级折叠下拉菜单

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

最新文章

  1. 2021年春季学期-信号与系统-第二次作业参考答案-第八小题
  2. python语言入门pdf-Python编程从入门到精通.pdf
  3. linux c嵌入汇编语言,Linux 下的C和Intel 汇编语言混用
  4. Android Context.bindService 返回 false 问题
  5. python37下载_pythoncom37.dll 3.7.224.0
  6. 方法的重写、重载及隐藏
  7. python 生成器原理_python生成器
  8. iptables详解(2):iptables管理
  9. php中的oop思想,oop_php oop思想_oop和ood
  10. 如何实现java编写告白程序,程序员如何实现表白代码
  11. win10系统备份教程
  12. Google着手与 Open AI 合作预防人工智能暴走
  13. 本人重装后的一些操作需求
  14. 黑客攻击第二次,开redis一瞬间
  15. matlab-colormap-contourf函数
  16. fgets 函数详解
  17. Jmeter:Generate HTML report 导出HTML测试报告
  18. android简易学生信息,Android studio应用程序设计——简单的学生信息录入应用app
  19. 影响互联网产品节奏的五大因素
  20. Java 批量处理数据

热门文章

  1. 适应adblock plus 规则的简单正则表达式匹配
  2. LOJ2257 SNOI2017 遗失的答案 容斥、高维前缀和
  3. System.Timers.Timer(定时器)
  4. 汇编实现: C库常见函数,串操作指令作用
  5. 5个提高效率的编程工作环境
  6. kvm+libvirt虚拟机快照浅析[转]
  7. Windows7 环境下 VS2008 C++链接错误!
  8. 分组取出值最大的数据
  9. (1.2)mysql 索引概念
  10. charles抓包https/模拟弱网/设置断点/修改接口请求值或返回值/压测