java.lang.IllegalArgumentException : view is not a child, 无法隐藏

标签 java android android-recyclerview

Recyclerview升级到v23.4.0后发现崩溃:

    java.lang.IllegalArgumentException: view is not a child, cannot hide com.xxx.ViewGroupGridView{32112cd4 V.E..... .......D 0,1443-1080,2277 #7f0b161c app:id/gv_menu_list}

    android.support.v7.widget.ChildHelper.unhide(ChildHelper.java:352)

    android.support.v7.widget.RecyclerView$Recycler.getScrapViewForPosition(RecyclerView.java:5080)
        android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4634)
        android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617)
        android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994)
        android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390)
        android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353)
        android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:584)
        android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028)
        android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2625)
        android.view.View.measure(View.java:17788)
        android.widget.RelativeLayout.measureChild(RelativeLayout.java:816)
        android.widget.RelativeLayout.onMeasure(RelativeLayout.java:561)
        android.view.View.measure(View.java:17788)
        android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5636)
        android.widget.FrameLayout.onMeasure(FrameLayout.java:459)
        android.view.View.measure(View.java:17788)
        android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:846)
        android.widget.RelativeLayout.onMeasure(RelativeLayout.java:512)
        android.view.View.measure(View.java:17788)
        android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5636)
        android.widget.FrameLayout.onMeasure(FrameLayout.java:459)
        android.view.View.measure(View.java:17788)
        android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5636)
        android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1692)
        android.widget.LinearLayout.measureVertical(LinearLayout.java:760)
        android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
        android.view.View.measure(View.java:17788)
        android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5636)
        android.widget.FrameLayout.onMeasure(FrameLayout.java:459)
        com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2712)
        android.view.View.measure(View.java:17788)
        android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2482)
        android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1436)
        android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1704)
        android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1314)
        android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6715)
        android.view.Choreographer$CallbackRecord.run(Choreographer.java:800)
        android.view.Choreographer.doCallbacks(Choreographer.java:603)
        android.view.Choreographer.doFrame(Choreographer.java:572)
        android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:786)
        android.os.Handler.handleCallback(Handler.java:815)
        android.os.Handler.dispatchMessage(Handler.java:104)
        android.os.Looper.loop(Looper.java:213)
        android.app.ActivityThread.main(ActivityThread.java:5819)
        java.lang.reflect.Method.invoke(Native Method)
        java.lang.reflect.Method.invoke(Method.java:372)
        com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:998)
        com.android.internal.os.ZygoteInit.main(ZygoteInit.java:793)

This is layout file. ViewGroupGridView是继承了linearLayout的普通 View ,我只是在RecyclerView中使用了这个绑定(bind)数据。

最佳答案

我有同样的问题,搜索这个主题显示了这个问题和一个库的 github 问题,其中一条评论很有趣。

如果您的 Header 甚至 Item 的高度为 wrap_content,请尝试将其更改为固定高度并查看崩溃是否消失。

Here is that comment

我会尝试同样的方法,几天后会发布更新。

关于java.lang.IllegalArgumentException : view is not a child, 无法隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43928275/

相关文章:

java字符串日期转换

java - AWS Lambda 函数内存大小是可变的还是常量?

java - 多线程时 onClick 随机不被调用

android - 膨胀 ListView/RecyclerView 项目时查询数据库的最佳实践

java - 无法在 spring mvc 中显示带有错误消息的同一页面

java - 将 includeAll 与类路径* : 一起使用时,变更集文件的 Liquibase 执行顺序

Android 将图像从设备库上传到 Amazon S3 服务器

android - Phonegap Android SmsSendingPlugin 不返回未发送的短信

android - GridLayoutManager 中的不同(动态)项目高度

android - RecyclerView Adapter - NotifyItemRemoved - 删除的项目在滚动后再次出现