在自定义LayoutManager(扩展RecyclerView.LayoutManager)RecyclerView.getChildViewHolderInt NullPointerException问题

时间:2014-11-19 10:05:13

标签: android layout-manager android-recyclerview

尝试类似于此(简化版本)后:

    @Override
    public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
         ....
         addView(new TextView(mRecyclerView.getContext()))
    }

我有一个例外:

    java.lang.NullPointerException
        at android.support.v7.widget.RecyclerView.getChildViewHolderInt(RecyclerView.java:2497)
        at android.support.v7.widget.RecyclerView$LayoutManager.addViewInt(RecyclerView.java:4807)
        at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:4803)
        at android.support.v7.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:4791)

如果没有ViewHolder,我无法添加到RecyclerView子视图?

1 个答案:

答案 0 :(得分:2)

永远不要在布局管理器中直接将新子项添加到RecyclerView。它添加的视图应始终从附加的RecyclerView.Adapter获取,以便正确计算它们并附加有效的ViewHolder。

相关问题