notifyItemChanged () Lassen Sie den RecyclerView scrollen und springen Sie zu UP

8

Ich habe einen RecycleView mit einem Adapter, der eine Liste von Servern anzeigt und der Benutzer muss einen Server auswählen.

wenn ich notifyItemChanged (previousPosition) in der onClick () Methode aufruft um den alten Server nicht auszuwählen und den neuen Server auszuwählen, Das bedeutet, dass die RecycleView-Liste genau in der Mitte der Liste nach oben springt.

und dieses Problem tritt auf, wenn ich auf einen der letzten zwei oder drei Server in der RecycleView-Liste klicke

Hier ist der Code meines RecyclerView.Adapter:

%Vor%

irgendwelche Lösungen, um dieses Problem zu lösen? Danke.

Das Problem ist genau dann passiert, wenn ich die Layouthöhe angegeben habe und es nicht zu wrap_content

gehen lassen soll %Vor%

oder wenn ich es zum Beispiel so unter etwas setze:

%Vor%

Mein Code ist genau:

%Vor%     
Oulhafiane Zakariaa 19.04.2016, 17:02
quelle

5 Antworten

10

Sieht aus, als wäre das ein Fehler: Ссылка

Die beste Problemumgehung scheint Barts Antwort zu sein, um die AutoMeasure-Eigenschaft des RecyclerViews LinearLayoutManager auf false zu setzen.

%Vor%

Das Set FixedSize auf True-Lösung hatte viel zu viele Nebenwirkungen ...

RecyclerView.setHasFixedSize (true)

    
Aace 17.06.2016 20:02
quelle
2

Ich weiß nicht warum, aber ich habe:

%Vor%

Das hat für mich funktioniert. Ich hoffe, es kann helfen.

    
zzq 01.06.2016 10:25
quelle
1

für jeden, der über dieses Problem stolpert, versuchen Sie

%Vor%

Dieser hat den Trick für mich getan.

Verwenden Sie

%Vor%

hat auch funktioniert, aber in einigen Randfällen wirkte Recycler View komisch. Viel Glück!

    
Dhunju_likes_to_Learn 25.08.2017 18:05
quelle
0

Ich stieß auf das ähnliche Problem, kümmere mich nur um die XML-Layout-Datei.
Verwenden Sie nicht die Eigenschaften layout_below , layout_above oder andere ähnliche Eigenschaften in der übergeordneten Ansicht von RecyclerView oder RecyclerView.
Sie können LinearLayout weight , layout_marginBottom oder etw verwenden, um ein layout_below oder ein anderes Ziel zu erreichen.

    
ThomsonStan 19.10.2016 09:59
quelle
0
%Vor%     
Ajay George 04.07.2017 14:30
quelle