Previously, I\'m using the following old support libraries \"23.1.1\".
compile \'com.android.support:appcompat-v7:23.1.1\'
compile \'com.android.support:supp
I had a similar problem. It endend up being that the recycler was not the problem. Check that your CardView item measurements translate to something like this:
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
...
/>
If you're not using CardView, ensure that the element you use in your Adapter for the view has android:layout_height="wrap_content"
and not match_parent
.
If that fails to work, you can add another attribute setting the minHeight
or maxHeight
for the view item.
It appears that you are updating the LayoutParam
for your View
in your Adapter
.
It is possible to tell this because your UI appears absolutely fine until you begin scrolling. This means that your XML is correct as it is defined in your XML layout file.
The fact that it changes after scrolling begins, means there is a logic error in your onBindViewHolder
implementation. That is why the error appears when you scroll down, and then the error sticks when you scroll back up.
Your issue is that your divider has gone rogue:
<View
android:layout_width="1px"
android:layout_height="match_parent"
android:background="?attr/buyPortfolioSeperatorBackground"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp" />
For testing purposes, set it to:
<View
android:layout_width="1px"
android:layout_height="30dp"
android:background="?attr/buyPortfolioSeperatorBackground"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp" />
Make sure you change both of them!
Just make row_layout
height to wrap_content
so it will take only row actual height space to all the items.
The height of recycle view must be "wrap_content" only. The recycle view will handle height if the size of cell increases.
buy_portfolio_fragment.xml
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/buyPortfolioListViewBackground"
android:requiresFadingEdge="none"
android:scrollbars="vertical"
android:paddingTop="@dimen/default_tab_layout_height"
android:clipToPadding="false" />
To fix this bug row_layout should have height fixed or wrap_content! I also had this problem and just realized that the height of row_layout was match_parent.
I believe this is the problematic line:
<View android:layout_width="1px"
android:layout_height="match_parent" <!--change this to wrap_content-->
android:background="?attr/buyPortfolioSeperatorBackground"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp" />
There are 2 places in your layout item that has layout_height="match_parent". You should change them both to wrap_content.