【关于ViewFlow】

 
ViewFlow是一款基于ViewGroup实现的可以水平滑动的开源UI Widget,可以从 https://code.google.com/p/andro-views/ 下载。
它使用Adapter进行条目绑定,主要用于不确定数目的视图间的切换,和ViewPager功能类似,但是可扩展性更强。
 
本例就是使用ViewFlow来实现页面水平切换。
 
【关于文章所用源码】
 
本文所属异常由于是从Android 4.2设备上抛出,所以文章内出现的所有源码都是Android 4.2源码,具体地址如下:http://grepcode.com/snapshot/repository.grepcode.com/java/ext/com.google.android/android/4.2.1_r1.2/
 

一、功能描述

采用ViewFlow+GridView的方式实现手势切屏功能,每屏以九宫格模式显示。
长按GridView里的Item切换到编辑模式,可以对Item进行删除。
 

二、复现场景

 

2.1 复现环境

本人拿了多款Android 4.2系列手机进行测试,目前只在两部手机上必现,在其他非 4.2 手机上偶尔出现。
华为Ascend P6,Android 4.2.2
联想K900,Android 4.2.1
 

2.2 复现步骤

进入应用后,以下三种操作都会导致所述问题:
1、Home到后台,再切换回来,Crash
2、长按Item,待切换到编辑模式后,Home到后台,再切换回来,Crash
3、左右切换几次屏幕,Home到后台,再切换回来,Crash
 

三、Crash Stack Info

 1 java.lang.IllegalArgumentException: parameter must be a descendant of this view
 2     at android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:4295)
 3     at android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:4232)
 4     at android.view.ViewRootImpl.scrollToRectOrFocus(ViewRootImpl.java:2440)
 5     at android.view.ViewRootImpl.draw(ViewRootImpl.java:2096)
 6     at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2045)
 7     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1854)
 8     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
 9     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)
10     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
11     at android.view.Choreographer.doCallbacks(Choreographer.java:562)
12     at android.view.Choreographer.doFrame(Choreographer.java:532)
13     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
14     at android.os.Handler.handleCallback(Handler.java:725)
15     at android.os.Handler.dispatchMessage(Handler.java:92)
16     at android.os.Looper.loop(Looper.java:137)
17     at android.app.ActivityThread.main(ActivityThread.java:5041)
18     at java.lang.reflect.Method.invokeNative(Native Method)
19     at java.lang.reflect.Method.invoke(Method.java:511)
20     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
21     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
22     at dalvik.system.NativeStart.main(Native Method)
View Code

相关文章:

  • 2021-11-06
  • 2022-12-23
  • 2022-02-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-18
猜你喜欢
  • 2022-12-23
  • 2021-05-01
  • 2022-02-08
  • 2021-11-26
  • 2021-05-03
  • 2021-06-10
相关资源
相似解决方案