Android: Gesamthöhe von Scroll
-
25-09-2019 - |
Frage
Ich habe eine benutzerdefinierte Scroll (erweiterte android.widget.ScrollView), die ich in meinem Layout verwenden. Ich mag die Gesamthöhe des Inhalts dieses Scroll messen. getHeight () und getMeasuredHeight () gib mir nicht korrekte Werte (zu hohen Zahlen).
Hintergrundinformationen: Ich will, um zu bestimmen, wie weit der Benutzer gescrollt hat. Ich benutze onScrollChanged den X-Wert zu erhalten, aber ich brauche einen Prozentsatz zu wissen, so dass ich die gesamte Scrollbar Höhe benötigen.
Vielen Dank! Erik
Lösung
Ein Scroll hat immer ein Kind. Alles, was Sie tun müssen, ist die Höhe des Kindes erhält die Gesamthöhe zu bestimmen:
int totalHeight = scrollView.getChildAt(0).getHeight();
Andere Tipps
Sehen Sie die Quelle der Scroll. Leider ist diese Methode privat, aber Sie es in Ihren eigenen Code kopieren könnten. Beachten Sie, dass andere Antworten nicht nehmen padding Rechnung
private int getScrollRange() {
int scrollRange = 0;
if (getChildCount() > 0) {
View child = getChildAt(0);
scrollRange = Math.max(0,
child.getHeight() - (getHeight() - mPaddingBottom - mPaddingTop));
}
return scrollRange;
}