Auto Scrollen zu HorizontalScrollView

7

Ich mache auto-horizontal scrollen. Also ich habe 15 Gegenstände. Jetzt möchte ich auf 12 Artikel zugreifen, so dass mein Index 11 ist. Aber ich kann es nicht automatisch scrollen, wenn ein Index auftritt.

%Vor%

Bitte, schauen Sie sich einen Experten an.

    
Rahul Rawat 04.04.2014, 14:50
quelle

4 Antworten

15

DmRomantsov 's Antwort ist der richtige Weg, um zum zwölften Knopf zu scrollen. Die Methoden getLeft() und getRight() geben jedoch 0 zurück, da das Layout noch nicht auf dem Bildschirm angezeigt wird. Es ist zu früh, um die Breite des übergeordneten und untergeordneten Layouts zu berechnen. Um dies zu erreichen, müssen Sie Ihren automatischen Bildlauf innerhalb von onWindowFocusChanged .

%Vor%

In einem Fragment funktioniert diese Methode jedoch nicht. Ich habe es einfach geschrieben, um einen Hinweis zu geben, um das Konzept zu verstehen. Um das gleiche Verhalten in Fragment zu haben, müssen Sie nur Runnable eingeben, damit die Zeit für Ihre Benutzeroberfläche angezeigt werden kann. Dann tun Sie dies mit einem LinearLayout , das auf horizontal ausgerichtet ist:

%Vor%

Middle HorizontalScrollView:

Deine Frage war das automatische Scrollen bis zu deinem zwölften Kind. In den folgenden Kommentaren bitten Sie mich jedoch, in der Mitte des HorizontalScrollView automatisch zu scrollen, nehme ich auf jedem Gerät an. Sie müssen die Breite des Bildschirms berechnen, die Gesamtbreite des Containers und wie viele untergeordnete Elemente innerhalb der Gerätebreite angezeigt werden . Hier ist ein einfacher Code:

%Vor%

Middle HorizontalScrollView mit dem ausgewählten Wert:

Ich habe die wirkliche Bitte ein wenig missverstanden. Eigentlich wollten Sie automatisch bis zu einer ausgewählten untergeordneten Ansicht blättern und diese Ansicht in der Mitte des Bildschirms anzeigen.
Dann habe ich die letzte int positionLeftWidth geändert, die jetzt auf die linke Position der ausgewählten Ansicht relativ zu ihrer übergeordneten verweist, die Anzahl der untergeordneten Elemente auf einer Seite und die halbe Breite der ausgewählten Ansicht . Also, der Code ist der gleiche wie oben, außer positionLeftWidth :

%Vor%

Unabhängig vom Wert in getChildAt() method und unabhängig von der Breite des Bildschirms haben Sie immer die ausgewählte Schaltfläche (in Ihrem Fall) in der Mitte des Bildschirms.

    
Fllo 11.04.2014, 01:11
quelle
3

Versuchen Sie

%Vor%

erster patameter - X coord, zweiter - Y.
Offset:

%Vor%

Absolut:

%Vor%     
DmRomantsov 04.04.2014 15:38
quelle
2

Versuchen Sie horizontalScrollView.smoothScrollBy(12, 0);

    
Ferzinha Fil 04.04.2014 14:54
quelle
0

Versuchen Sie, das funktioniert Code. Position ist wo Sie scrollen möchten

%Vor%     
Emran Hamza 17.01.2017 05:03
quelle

Tags und Links