Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create a RecyclerView with both horizontal and vertical scrolling

Tags:

Over the past few weeks I've been learning to use the RecyclerView. I need to implement a horizontal list, ie, that by turning the device in landscape mode like so:

enter image description here

I found the best solution for this (how to create the horizontal displacement of RecyclerView, here), but encountered another problem. The item RecyclerView was larger than the height of the device (in landscape, horizontal), so I need to create a vertical and horizontal displacement, simultaneously.

I looked at the Android Developer methods for the LayoutManager class, but my skills are not high enough to understand most of the methods. I also tried putting a RecyclerView vertically inside another RecyclerView horizontally with all the content, but I get error:

IllegalStateException: RecyclerView has no LayoutManager

To rememedy this I removed all <View ... /> elements from the XML file, but this does not give any results.

To clarify what I am asking: is it possible to have my layout scroll both horizontally and vertically, and if you could explain how I would appreciate it.

like image 223
Vicky Vicent Avatar asked Apr 04 '16 16:04

Vicky Vicent


Video Answer


2 Answers

I was so angry about all the problems that had tended with the application that had not thought about the easiest solution.

In a RecyclerView consists of two XML files, the main one where the RecyclerView is declared and another with content.

The simplest solution was to introduce the RecyclerView within a ScrollView. So I can move all items at a time thanks to ScrollView vertically and horizontally I can move the items thanks to RecyclerView in landscape mode.

activity_main.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:layout_margin="@dimen/cardIn_margin_ext">          <android.support.v7.widget.RecyclerView             android:id="@+id/recycler_view"             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:scrollbarStyle="outsideInset"             android:scrollbars="horizontal" />  </ScrollView> 
like image 142
Vicky Vicent Avatar answered Nov 08 '22 21:11

Vicky Vicent


The accepted answer did'nt work for me. I had to use the HorizontalScrollView instead of simple ScrollView.

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_margin="@dimen/cardIn_margin_ext">      <android.support.v7.widget.RecyclerView         android:id="@+id/recycler_view"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:scrollbarStyle="outsideInset"         android:scrollbars="horizontal" /> </HorizontalScrollView > 
like image 34
Muhammad Bilal ahmad Avatar answered Nov 08 '22 23:11

Muhammad Bilal ahmad