当前位置: 编程技术>移动开发
本页文章导读:
▪加入ScrollView后OnGestureListener无效的解决方法 加入ScrollView后OnGestureListener无效的解决办法
android中,ViewFlipper+OnGestureListener可以实现左右滑动效果。但是在ViewFlipper加上了ScrollView就悲剧了,左右滑动事件无效了……这里其实只需要多实.........
▪ ViewPager 出现重复添加View有关问题 ViewPager 出现重复添加View问题
在使用中ViewPager和GridView整合做一个自定义UI时,在PagerAdapter重载方法instantiateItem()中出现异常
报错code为:
@Override
public Object instantiateItem(View arg0, int arg1) {
.........
▪ ad hoc证件 ad hoc证书
iOS证书分2种,1种是开发证书,用来给你(开发人员)做真机测试的;1种是发布证书,发布证书又分发布到app store的(这里不提及)和发布测试的ad hoc证书。 那ad hoc证书和开发.........
[1]加入ScrollView后OnGestureListener无效的解决方法
来源: 互联网 发布时间: 2014-02-18
加入ScrollView后OnGestureListener无效的解决办法
android中,ViewFlipper+OnGestureListener可以实现左右滑动效果。
但是在ViewFlipper加上了ScrollView就悲剧了,左右滑动事件无效了……
这里其实只需要多实现一个方法就是了,主要是把事件交给系统自己处理
在OnGestureListener对象中,实现以下方法
另外,由于有了上下滑动和左右滑动的原因,在上下滑动的时候可能会不小心就触发了左右滑动,所以需要在加点东西
android中,ViewFlipper+OnGestureListener可以实现左右滑动效果。
但是在ViewFlipper加上了ScrollView就悲剧了,左右滑动事件无效了……
这里其实只需要多实现一个方法就是了,主要是把事件交给系统自己处理
在OnGestureListener对象中,实现以下方法
@Override public boolean dispatchTouchEvent(MotionEvent ev){ super.dispatchTouchEvent(ev); //productGestureDetector 是 GestureDetector对象 return productGestureDetector.onTouchEvent(ev); }
另外,由于有了上下滑动和左右滑动的原因,在上下滑动的时候可能会不小心就触发了左右滑动,所以需要在加点东西
private static final int FLING_MIN_DISTANCE = 100; private static final int FLING_MIN_VELOCITY = 50; //.... public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE && Math.abs(velocityX) > FLING_MIN_VELOCITY) {// move to left //TODO 左滑动 } else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE && Math.abs(velocityX) > FLING_MIN_VELOCITY) { //TODO 右滑动 } else { return false; } return true; }
[2] ViewPager 出现重复添加View有关问题
来源: 互联网 发布时间: 2014-02-18
ViewPager 出现重复添加View问题
在使用中ViewPager和GridView整合做一个自定义UI时,在PagerAdapter重载方法instantiateItem()中出现异常
报错code为:
@Override public Object instantiateItem(View arg0, int arg1) { ((ViewPager) arg0).addView(mListViews.get(arg1), 0); //此句报错。 return mListViews.get(arg1); }
具体问题为:
java.lang.IllegalStateException The specified child already has a parent. You must call removeView() on the child's parent first.
查阅相关信息后发现错误原因为指定要添加的view已经被设置了parent,如果要添加就必须先解除原parent的联系.观察Exception错误栈发现导致这一步是因为ViewPager执行setCurrentItem(index)方法时会间接调用到instantiateItem()方法,具体原因未知。
修改代码,先判断需要添加的view是否有parent再做add操作,bug解除:
@Override public Object instantiateItem(View arg0, int arg1) { try { if(mListViews.get(arg1).getParent()==null){ ((ViewPager) arg0).addView(mListViews.get(arg1), 0); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return mListViews.get(arg1); }
不过这只是暂时的解决方法,还需要再熟悉viewpager的具体执行机制才能避免这类错误再发生。
[3] ad hoc证件
来源: 互联网 发布时间: 2014-02-18
ad hoc证书
iOS证书分2种,1种是开发证书,用来给你(开发人员)做真机测试的;1种是发布证书,发布证书又分发布到app store的(这里不提及)和发布测试的ad hoc证书。
那ad hoc证书和开发证书区别在哪里?如果你的tester(团队测试人员、客户)都能将测试设备拿到你面前,直接插到你的mac开发机上,你可以直接将程序“灌”进去,那有开发证书就够了,不需要ad hoc证书。
如果tester的iOS设备不能直接让你灌程序,那怎么办?你必须打包(Archive)你的程序,然后发给你的tester,让他通过itunes进行安装,那就需要ad hoc证书了。
并且你需要一张名为iTunesArtwork的图片,大小为512x512,因为不是发布到app store,所以icon不能用,测试人员通过itunes安装的时候,就是会展现iTunesArtwork这个图标。并且iTunesArtwork名称不能更改。
iOS证书分2种,1种是开发证书,用来给你(开发人员)做真机测试的;1种是发布证书,发布证书又分发布到app store的(这里不提及)和发布测试的ad hoc证书。
那ad hoc证书和开发证书区别在哪里?如果你的tester(团队测试人员、客户)都能将测试设备拿到你面前,直接插到你的mac开发机上,你可以直接将程序“灌”进去,那有开发证书就够了,不需要ad hoc证书。
如果tester的iOS设备不能直接让你灌程序,那怎么办?你必须打包(Archive)你的程序,然后发给你的tester,让他通过itunes进行安装,那就需要ad hoc证书了。
并且你需要一张名为iTunesArtwork的图片,大小为512x512,因为不是发布到app store,所以icon不能用,测试人员通过itunes安装的时候,就是会展现iTunesArtwork这个图标。并且iTunesArtwork名称不能更改。
最新技术文章: