Skip to content Skip to sidebar Skip to footer

Recyclerview Inside Nestedscrollview Onbindviewholder Calling For All Getitemcount Size

When I put RecyclerView inside NestedScrollView then onBindViewHolder is calling for all row like say I have list which has size of 30 then onBindViewHolder is called for all 30 ro

Solution 1:

I'm going to assume that since your are using appbar_scrolling_view_behavior you are trying to do something with AppBarLayout.

If so, you can use RecyclerView as a direct child of CoordinatorLayout and have support for AppBarLayout scrolling without nesting RecyclerView inside of NestedScrollView.

Try this: RecyclerView inside CoordinatorLayout (with AppBarLayout and CollapsingToolbarLayout):

<android.support.design.widget.CoordinatorLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:fitsSystemWindows="true"><android.support.design.widget.AppBarLayoutandroid:id="@+id/app_bar_layout"android:layout_width="match_parent"android:layout_height="wrap_content"android:fitsSystemWindows="true"><android.support.design.widget.CollapsingToolbarLayoutandroid:id="@+id/collapsing_toolbar"android:layout_width="match_parent"android:layout_height="wrap_content"app:layout_scrollFlags="scroll"><android.support.v7.widget.Toolbarandroid:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="80dp"android:background="#55FF00FF"app:layout_collapseMode="none"/></android.support.design.widget.CollapsingToolbarLayout></android.support.design.widget.AppBarLayout><android.support.v7.widget.RecyclerViewandroid:id="@+id/recycler_view"android:layout_width="match_parent"android:layout_height="match_parent"app:layout_behavior="@string/appbar_scrolling_view_behavior" /></android.support.design.widget.CoordinatorLayout>

And in your Activity or CustomView:

RecyclerView list;
LinearLayoutManagerlayoutManager=newLinearLayoutManager(getContext());
list.setLayoutManager(layoutManager);
list.addItemDecoration(newVerticalSpaceItemDecoration(5));
list.setAdapter(adapter);

Solution 2:

But you set android:layout_height for NestedScrollView to wrap_content - here, it's zero by default (because there no content for him at the moment of the declaration). Next, for RecyclerView you set android:layout_height to match_parent - which is at the moment is 0. Thus, all your items have 0 height.

Thus, you have such situation. Answer : use solution above from @dkarmazi https://stackoverflow.com/a/37558761/3546306 or try to change parameter android:layout_height values.

Solution 3:

It's right.Because you are using a ScrollView.ScrollView is not recyclable like RecyclerView or ListView.It will show all view contains these out of screen in one time.You should use a other layout instead.

Post a Comment for "Recyclerview Inside Nestedscrollview Onbindviewholder Calling For All Getitemcount Size"