2016年9月25日 星期日

popup windows on android

Ref : http://www.jianshu.com/p/d9407f799d2d

效果还是很赞的,看下动态图

simple.gif

这个项目是我在2015年7月份左右写的,时隔半年,终于有人问津,但时隔半年,也感到这个项目有许多的不足之处,怀着激动的心情今天来讲解并完善这个项目。

选择实现方式

若是看到第一眼让我做这个效果,我肯定会选择PopuWindow去做,PopuWindow可以实现显示隐藏效果也自带阴影效果,看上去是不错的选择,网上也有类似库DropDownMenu就是利用PopuWindow实现,但事实上在菜单切换的时候会很不流畅(用的不爽),思维局限的时候容易钻死角,尝试过甚至自定义PopuWindow,最后都毫无办法改善那点问题,最后在网上偶遇一个demo使用View的显示隐藏加些动画效果就解决了我的难题,最终我放弃使用PopuWindow,利用最基本的布局实现了这个项目。
当遇到难题束手无策时,不妨暂且放下,待思路清晰时,或许它根本就不是个问题


文/dongjunkun(簡書作者)
原文鏈接:http://www.jianshu.com/p/d9407f799d2d
著作權歸作者所有,轉載請聯繫作者獲得授權,並標註“簡書作者”。


这个项目做了哪些,没做哪些?

这个项目并没有实现菜单及里面的逻辑,仅仅提供了一套实现菜单的框架,菜单的样式可完全自定义,目的是为了快速集成,又可扩展(实用),在很多时候,选择开源框架我会将扩展性放在首位,不然再好看再炫我都不会轻易使用,当然,既炫又实用的东西我是不会嫌弃的。

实现思路

其实这个项目可以直接使用Xml布局实现,结构是这样的



嗯,大概的结构就是这个样子,但使用xml文件有个弊端,tab的个数不可以动态控制,menu也是一样,tab包括menu和之间的切换和动画处理起来都比较麻烦,我才有意将其封装为独立控件,只需在一处集中处理这些麻烦,提供简单易用的api。

一些改进想法

  • menu之间的切换支持手势
  • menu底部留白
  • tab可滑动
  • 可使用xml文件布局,却不需要处理其他问题
  • 更灵活的api
    新版的DropDownMenu,敬请期待,预览图:









沒有留言:

張貼留言