java.lang.IllegalArgumentException: 参数必须是此视图的后代错误

Sub*_*tut 5 android viewgroup

我有一个 ViewGroup 的奇怪错误。对于我的主视图,我在此链接中使用类ViewFlow 项目

    java.lang.IllegalArgumentException: parameter must be a descendant of this view
        at android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:4153)
        at android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:4090)
at android.view.ViewRootImpl.scrollToRectOrFocus(ViewRootImpl.java:2129)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:1849)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1641)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2449)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 Intent 或 Finish() 返回此视图时会发生此错误;另一个视图中的方法。当我使用后退按钮时,这不是问题。

所以我不知道为什么我有这个错误。谢谢你的帮助。

Nod*_*din 10

有同样的问题。我使用一个 ViewFlow 作为父视图,使用几个 GridView 作为子视图。当我按下 Home 键并在我左右滚动这些子视图后再次重新启动活动时,会发生此错误。

这是我的解决方案:

mViewFlow.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
Run Code Online (Sandbox Code Playgroud)

当然,你可以在layout.xml中进行配置。

希望能帮到你。

  • 谢谢你。但是个人接触不是可取的。除了个人联系之外,这里的所有人都能得到答案更好。 (3认同)
  • 请描述解决方案。 (2认同)
  • 你好,Parixit,很抱歉这么晚才回复你。我写了一篇博客来分析这个异常,链接如下:http://www.cnblogs.com/monodin/p/3675040.html (2认同)
  • 这是中国人写的,你可能看不懂。但解决方案位于该博客的末尾,其中包含大量代码,我认为您可以从中得到一些东西。另外,热烈邀请您与我联系。这是我的电子邮件:dyj_henu@126.com (2认同)