ebarrenechea / header-decor

A couple of sticky header decorations for android's recycler view.
Apache License 2.0
878 stars 159 forks source link

NullPointerException: Attempt to invoke virtual method 'int android.support.v7.widget.RecyclerView$ViewHolder.getLayoutPosition()' on a null object reference #43

Closed rusmichal closed 7 years ago

rusmichal commented 8 years ago

Android 5.1.1 Device Sony M2

FilterAdapter filterAdapter = new FilterAdapter();
        StickyHeaderDecoration decoration = new StickyHeaderDecoration(filterAdapter);

        LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);

        filterRecyclerView.setHasFixedSize(true);
        filterRecyclerView.setLayoutManager(layoutManager);
        filterRecyclerView.addItemDecoration(decoration);
        filterRecyclerView.setAdapter(filterAdapter);

        ArrayList<String> headers = new ArrayList<>(Arrays.asList(getResources().getStringArray(R.array.filter_list_headers)));
        List<Object> filterModels = new ArrayList<>();
        filterModels.add(new Object());
        filterModels.add(new Object());
        filterModels.add(new Object());

        filterAdapter.addHeaders(headers);
        filterAdapter.addAll(filterModels);
        filterAdapter.notifyDataSetChanged();
Process: co.route1.client.staging, PID: 7038
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.support.v7.widget.RecyclerView$ViewHolder.getLayoutPosition()' on a null object reference
at android.support.v7.widget.RecyclerView$LayoutParams.getViewLayoutPosition(RecyclerView.java:9472)
at android.support.v7.widget.RecyclerView$LayoutManager.getPosition(RecyclerView.java:6800)
at android.support.v7.widget.LinearLayoutManager.findReferenceChild(LinearLayoutManager.java:1615)
at android.support.v7.widget.LinearLayoutManager.findFirstReferenceChild(LinearLayoutManager.java:1597)
at android.support.v7.widget.LinearLayoutManager.findReferenceChildClosestToStart(LinearLayoutManager.java:1592)
at android.support.v7.widget.LinearLayoutManager.updateAnchorFromChildren(LinearLayoutManager.java:745)
at android.support.v7.widget.LinearLayoutManager.updateAnchorInfoForLayout(LinearLayoutManager.java:713)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:484)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028)
at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2625)
at android.view.View.measure(View.java:17637)
at ca.barrenechea.widget.recyclerview.decoration.StickyHeaderDecoration.getHeader(StickyHeaderDecoration.java:128)
at ca.barrenechea.widget.recyclerview.decoration.StickyHeaderDecoration.getItemOffsets(StickyHeaderDecoration.java:67)
rusmichal commented 8 years ago

Please add readme how to use.

starkej2 commented 7 years ago

Have you taken a look at the sample app @rusmichal? https://github.com/edubarr/header-decor/tree/master/sample

rusmichal commented 7 years ago

Yes I saw and I did the same. I have given up and used other library. Sorry man :)

starkej2 commented 7 years ago

Based on your sample code, it looks like filterRecyclerView was never instantiated, which caused the NullPointerException. Let us know if you have any other questions. I'll try to add a readme in the near future to supplement the sample app!