RecyclerView, die nicht scrollt und alle Elemente anzeigt

8

Ich habe eine RecyclerView (und einige andere Ansichten) in einer ScrollView. Gegenwärtig ist der RecyclerView als sehr klein ausgelegt (er zeigt 2 von 5 Punkten, die er enthält), und er scrollt unabhängig von dem ScrollView, was offensichtlich keine großartige UX ist. Ich möchte die RecyclerView nicht scrollen und erweitern, so dass alle ihre Elemente sichtbar sind.

(Ich weiß, dass es in diesem Fall dumm ist, einen RecyclerView zu verwenden. Ich mache das nur, weil ich woanders in der App einen normalen RecyclerView mit Scrolling usw. brauche, aber die gleiche Art von Inhalt, und ich will nicht Code kopieren).

    
pstobiecki 04.07.2016, 22:15
quelle

4 Antworten

18

Es ist ziemlich einfach, einfach die Höhe von RecyclerView auf wrap_content zu setzen.

Sie können auch davon profitieren, das verschachtelte Scrollen in der Recycler-Ansicht zu deaktivieren:

%Vor%     
natario 04.07.2016, 22:35
quelle
9

Die Lösung von setNestedScrollingEnabled (false) ist nicht so voll wie sie sollte: Sie müssen NestedScrollView anstelle von ScrollViewfocusableInTouchMode="true" für das untergeordnete Element von NestedScrollView verwenden.

Wenn Sie darauf bestehen, ScrollView zu verwenden, sollten Sie auch minHeight auf RecyclerView setzen und auch overScrollMode="never" einstellen. In diesem Fall ist es immer noch keine gute Lösung, da die minHeight in einigen Fällen möglicherweise nicht ausreicht

Andere alternative Lösungen, die Sie beachten sollten:

  1. Ersetzen Sie ScrollView und RecyclerView durch eine einzelne RecyclerView, die Ansichten mit zusätzlichem Ansichtstyp für das, was Sie in der ScrollView

  2. hatten, hat
  3. Verwenden Sie stattdessen GridLayout oder ein anderes Layout.

android developer 31.01.2017 15:05
quelle
1

Versuchen Sie auch, mit:

zu spielen %Vor%     
Atetc 23.11.2016 06:44
quelle
0

unterhalb von scrollview Verwenden Sie diese Option zum Deaktivieren des Scrollens, um alle Elemente in Ihrem Layout anzuzeigen. So etwas könnte funktionieren:

%Vor%

Verwenden Sie wie folgt:

%Vor%     
Pankaj Talaviya 29.11.2017 05:09
quelle

Tags und Links