【小木桩】继承viewgroup实现左侧菜单(半原创)

精贴 置顶
1940 0

前几天一直看到一个viewgroup实现的特效,觉得比较炫。
          于是就想学习学习这个东西,现在看来viewgroup确实是一个好东西。在自定义复杂view方面确实没话说。不过入门比别的控件稍微难了一点点。


在学这个的时候看到一篇帖子,也是左侧的菜单,原帖地址如下:
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=212634

这个例子是我学习的入门篇,从头到尾我也仔仔细细的看了。上面也说到里面有一个小bug没有解决。
原话如下:

(我把源码上传网上,大家可以下载运行,如有不足请留言.说明一点:listview上下左右滑动冲突没有解决,
      不过我运行看过很多应用,要么listview不能左右滑动,要么能左右滑动但是listview不到一屏)

   现在我就为上面的疑问给大家分享一下我的做法,完善了之前的小bug,界面完全是以前的。不过代码改动稍微过大。
一,将之前的手势监听改成了onTouch方法监听(算法略复杂,优点是监听更准确,可操控性更强)
二,去除了回调接口(减少不必要的回调)
三,修改测量view的方法。


下面这个方法是比较主要的一个方法,即将viewgroup里面的子view按照要求布局(很重要,这将被视为所有view的初始状态)
protected void onLayout(boolean changed, int l, int t, int r, int b) {
  if (changed) {
                 viewMenu = getChildAt(0);// 获取滑动菜单的view
                viewContent = getChildAt(1);// 获得主页view
                  measureView(viewContent);
                  measureView(viewMenu);//对传进来的子view进行测量,这个很重要  在源码里面会有相应代码
                width = getWidth();//获得控件所拥有的宽度
                  height = getHeight();//获得控件所拥有的高度
                // 四个参数分别为:左边的位置,上边的位置,右边的位置,底边的位置
                   viewMenu.layout(-viewMenu.getMeasuredWidth(), 0, 0, getHeight());
                  viewContent.layout(0, 0, getWidth(), getHeight());
       }
}

  • 没有任何评论
今日天气 ···

···

···

···

热门排行
用ASP实现网页BBS 2010-11-01
CSS cursor鼠标样式一览表 2012-06-25
.NET后台写JS代码 2011-11-03
网站地址多出jdfwkey的问题解析及... 2010-08-25
数据库xxx的日志已满,请备份该数... 2013-07-19
百度、google、Yahoo网站地图制作... 2011-01-30
<a>标签的伪类书写顺序问题... 2010-09-04
什么是长尾关键词? 2010-09-24
CEO名言 2010-08-31
Mysql 主从数据库同步 2010-09-12
博主推荐
本个人博客微信公众平台上线啦~~... 2013-10-13
饼哥网络互联上线啦~~要买域名空... 2013-09-20
网站title标题如何正确修改不会被... 2013-08-26
饼哥通讯录系统上线啦,欢迎大家... 2013-08-24
ASP .NET MYSQL 的简单分页 并不... 2013-08-19
网站有弹窗广告这样的站点,百度... 2013-08-17
做淘宝SEO优化需要注意的8大问题 2013-08-17
淘宝网怎么做SEO优化 2013-08-17
站长们要学习的“苍井空精神” 2013-08-17
苹果公司今日发布了iOS 7第五个开... 2013-08-07
随便看看
Java网络编程TCP与UDP内容 2013-06-26
Static Page-静态页面 2010-09-20
常用电脑快捷键大全 2010-09-09
SQL Server 2005 自动备份 2010-09-03
Sitemap-网站地图 2010-09-20
趣味编程:Java等腰三角形实例 2013-06-24
.net用工厂模式开发多数据库连接... 2010-09-10
有趣的《base href= http://www.... 2013-08-31
ViewState及其加密解密 2013-11-15
破解威盾监控最给力办法 2013-11-13
RSS新闻
传媒新闻
CSDN
八卦新闻
女性新闻
台湾新闻
互联网
军事-新浪博客
IT-新浪博客
汽车新闻
游戏新闻
国际新闻
国内新闻
体育新闻
我的微博
北京 上海 杭州 深圳 广州 成都