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

War es hilfreich?

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;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top