2017-04-02 12 views
0

Ich möchte den aktuellen sichtbaren Artikel/Elemente in Vertical Linear Layout (RecyclerView) finden, so dass ich Exoplayer an das oberste Element und nicht an alle Elemente anhängen kann. Und sogar dieses Element auf Sichtbarkeit spielen. Ich finde keine Idee, dies umzusetzen.Aktueller Sichtbarer Gegenstand in RecyclerView

Sollte dies in Fragment oder Adapter behandelt werden.

Danke, ich bin neu in der Android-Entwicklung.

+0

Wie viele Elemente haben Sie? Vielleicht wäre es besser, 'RecyclerView' anstelle von' LinearLayout' zu verwenden? BTW warum hast du Adapter in diesem Fall? – pxsx

+0

Ich habe RecyclerView mit vertikalem linearen Layout. – user1590595

Antwort

0

In LinearLayoutManager können Sie einige Methoden verwenden, die sie helfen können.

layoutManager.findFirstVisibleItemPosition(); 
layoutManager.findFirstCompletelyVisibleItemPosition(); 
layoutManager.findLastVisibleItemPosition(); 
layoutManager.findLastCompletelyVisibleItemPosition(); 

Diese gibt die Position als Ganzzahl zurück. Sie können wie unten verwenden:

LinearLayoutManager layoutManager = ((LinearLayoutManager) recyclerView.getLayoutManager()); 
int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition(); 

Aber Sie sollten beachten, dass in einigen Fällen, findFirstVisibleItemPosition() in einigen Geräten nicht stabil funktionierte für mich. Zum Beispiel funktionierte es bei Sony-, LG- und Samsung-Geräten, aber derselbe Code funktionierte bei Nexus 5 nicht. Ich bin mir nicht sicher, warum es nicht funktioniert hat, aber ich änderte meinen Ansatz wegen dieses Fehlers.

+0

Welchen Ansatz haben Sie gewählt? – user1590595

+0

@ user1590595 Es war ein anderes und komplexeres Feature zum Scrollen von Konsumverhalten mit CollapsableToolbarLayout. Ich habe es geschafft, das mit dem eigenen Flingverhalten zu beheben. Ich denke nicht, dass es mit Ihrem Fall zusammenhängt. Es braucht zu viel um es zu erklären. –