Ich habe einen RecyclerView + LinearLayoutManger, der einen Adapter verwendet, der Chatnachrichten enthält. Ich beschränke die Anzahl der Chat-Nachrichten auf die letzten 100. Dieses Problem tritt auf, wenn ich die älteren Chats lösche, ändert sich die Bildlaufposition der Chats in der Recycleransicht, weil Index 0 entfernt wurde. Ich fing an, den folgenden Code zu schreiben:Nach oben Versatz des ersten sichtbaren Gegenstandes in einem RecyclerView finden
Ich dachte, es wäre einfach, den sichtbaren Offset der ersten sichtbaren Position zu erhalten. Ex. Wenn die erste sichtbare Ansicht 300dp ist, aber nur die letzten 200dp sichtbar sind, möchte ich den Offset 100 bekommen.
So könnte ich scrollToPositionWithOffset (firstVisiblePosition - 1, OffsetTop) verwenden.
Fehle ich hier etwas? Das scheint ein leichtes Problem zu sein, aber ich habe keine Methoden gesehen, die dies unterstützen würden.
haben Sie versuchen, mit 'v.getHeight() - v.getTop()' – Blackbelt
ich in sie weiter suchen werde. Ich denke, v.getTop() bekommt die y-Koordinate der gesamten Scroll-Höhe, nicht relativ zum Ort der recyclerview top selbst. – tylerjroach