当前位置: 首页 > article >正文

Android 安卓 ViewPager中使用Gallery!

本次开发项目过程中,要在ViewPager中使用Gallery。遇到一个问题Gallery无法滑动,猜想应该是焦点问题,在网上搜到如下方法:

http://www.eoeandroid.com/thread-176552-1-1.html

mPager.setOnTouchListener(new View.OnTouchListener()
{@Overridepublic boolean onTouch(View v, MotionEvent event) {Rect rect = new Rect();g.getLocalVisibleRect(rect);if(rect.contains((int)event.getX(), (int)event.getY())){return g.dispatchTouchEvent(event);}return false;}
});

解决思路:在ViewPager的onTouch事件中,判断一下点击位置,如果是在Gallery里面,就交给Gallery去处理。

新问题:Gallery是能滑动了,但是Gallery的范围获取的不对,在Gallery外面点击也能滑动。我的Gallery是在一个ScrollView(能上下滚动,还包含其它内容)里面,然后把ScrollView放到ViewPager里面。不知道其它情况可会遇到这个问题。

解决方法:还是按照上面的解决思路,不过不用getLocalVisibleRect去获取区域。通过getLocationOnScreen获取Gallery左上角的起始点,再通过Gallery的高度和宽度计算出来范围。特别说明:event.getY()得到的是相对坐标,要使用event.getRawY() 才是相对于屏幕的点。

mPager.setOnTouchListener(new View.OnTouchListener()
{@Overridepublic boolean onTouch(View v, MotionEvent event){int[] location = new int[2];gallery.getLocationOnScreen(location);if (location[0] != 0){return false;}if (event.getRawY() > location[1] && event.getRawY() - location[1] < gallery.getHeight()){return gallery.dispatchTouchEvent(event);}return false;}
});


http://www.lryc.cn/news/2418865.html

相关文章:

  • C语言从入门到放弃
  • 基于Verilog的十字路口交通灯控制电路设计
  • 诺基亚n1平板电脑刷机教程_诺基亚N1 完整包线刷升级或救砖教程(不分台版;国行)...
  • UWB的定位算法(简单详细易懂)
  • java 文件锁 文件序列化 多进程并发处理 工具类
  • 为什么我的xp系统在有进程cidaemon.exe启动时,内存的使用量就一直上升?
  • J2ME开发教程(转)
  • Java:接口和抽象类,傻傻分不清楚?
  • Visual C++ 2011-4-8
  • 韶关IBM 联想服务器维修 X3650 M5
  • 灰鸽子使用教程(图文教程)
  • 10月28日 迅雷白金会员vip账号分享 91freevip 22:00更新
  • Fedora12下安装NCTUns6.0
  • 2015年全国谷歌卫星地图离线数据存储方案
  • ASP.NET 博客网站系统的设计与实现(论文+源码)_Nueve
  • Ultra RM Converter v1.2.7
  • 乐嘉的经典语录
  • 彻底禁用Autorun.inf, 杜绝U盘病毒
  • TD三国赤壁通关攻略与录像下载
  • TestDirector安装部署的前提
  • 解密QQ盗号诈骗APP:逆向溯源,探寻幕后黑色操作
  • java队徽_求实况足球10PC版(PES6)存档修改器 PESFan Editor 6所需的Java程序(必须是能够下载的链接,死链接免扰!...
  • 完美的Ubuntu 7.10,恐惧吧,微软!
  • DLL注入之消息钩子
  • ghttp数据结构
  • 分享几个免费的开源邮件服务器软件
  • 白帽子技术分析会话劫持实战讲解
  • 15名程序员界的高富帅+白富美
  • 软件测试项目实战案例分解,跟着我一步一步操作【人力资源管理系统】
  • Red Flag Linux 红旗Linux桌面6.0系列