meshileya / android-recycler-view-wrap-content

This is a sample android app which demonstrates `RecyclerView` wrap_content inside `ScrollView` issue on Marshmallow and Nougat (API 23, 24 & 25) and how to work around it.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status AOSP issue link

android-recycler-view-wrap-content

This is a sample android app which demonstrates RecyclerView with layout_height=wrap_content not taking height of all the items issue inside ScrollView that happens on Marshmallow, Nougat (+MR1) (API 23, 24 & 25) and how to work around it.

  • UPDATE # 1: On Marshmallow (API 23) devices, the issue seems to happen only on PORTRAIT orientation, LANDSCAPE works fine. On Nougat (Build # NPD90G) the issue still exist on both orientation.
  • UPDATE # 2: Based on solution found on stackoverflow, replacing root ScrollView with android.support.v4.widget.NestedScrollView also avoids this issue on Marshmallow+ devices. A new demo section has been added to showcase this.
  • UPDATE # 3: Updated Support Library version from 24.1.1 to 24.2.0, but the issue still exists.
  • UPDATE # 4: Updated Support Library version from 24.2.0 to 24.2.1, but the issue still exists.
  • UPDATE # 5: Updated Support Library version from 24.2.0 to 25.0.0, but the issue still exists.
  • UPDATE # 6: Updated Support Library version from 25.0.0 to 25.1.0, but the issue still exists.

android.support.v7.widget.RecyclerView version used 25.1.0 (December 2016) - Release Notes

Devices Tested On

Device OS Version Works? Notes
Moto G (3rd Gen) 5.1.1
Nexus 5 6.0.1 Works on LANDSCAPE orientation.
Galaxy S4 (SGH-i337M) 5.0.1
Galaxy S6 (SM-G920F) 6.0.1 Works on LANDSCAPE orientation.
Nexus 6P 7.0 (NPD90G), 7.1.1 (NPF10C)
Galaxy Note 3 4.2.2
Emulator 4.3.1
LG G4 6.0 Works on LANDSCAPE orientation.

Stack Overflow References

DISCLAIMER: This application code has been generated using activity template provided in Android Studio. It is intended to showcase the issue on specified OS versions. No effort has been made to follow industry's best practices for developing android apps. If you are interested in learning best practices for developing android apps, please follow Google's official guides found here: https://github.com/googlesamples/android-architecture

Where is the workaround?

There is nothing to see in the code. Take a look at following layout files for workaround.

Here is basic skeleton of layout I have used

<ScrollView>
  <LinearLayout> (vertical - this is the only child of scrollview)
     <SomeViews>
     <RecyclerView> (layout_height=wrap_content)
     <SomeOtherViews>

Demo

Screencast

A picture is worth a thousand words, and a video is probably worth even more ^_^

Screencast

Screenshot

Screenshot

TODO

File bug report with android project.

UPDATE: Reported new issue at https://code.google.com/p/android/issues/detail?id=220204

Test On Device

For convenience, I've uploaded my debug build apk to Google Drive. You can try installing the app from https://goo.gl/TDhWtY

About

This is a sample android app which demonstrates `RecyclerView` wrap_content inside `ScrollView` issue on Marshmallow and Nougat (API 23, 24 & 25) and how to work around it.

License:Apache License 2.0


Languages

Language:Java 100.0%