レイアウトで使用するカスタムScrollView(拡張Android.widget.ScrollView)があります。このスクロールビューのコンテンツの全体の高さを測定したい。 getHeight()とgetMeasuredHeight()は正しい値を与えません(高すぎる)。
背景情報:ユーザーがどこまでスクロールしたかを判断したい。 onScrollChangedを使用してX値を取得しますが、パーセンテージを知る必要があるため、スクロールバーの高さの合計が必要になります。
どうもありがとう!エリック
ScrollViewには常に1つの子があります。必要なのは、子供の身長を取得して合計身長を決定することだけです。
int totalHeight = scrollView.getChildAt(0).getHeight();
ScrollViewのソースを参照してください。残念ながら、このメソッドはプライベートですが、独自のコードにコピーできます。他の回答ではパディングが考慮されないことに注意してください
private int getScrollRange() {
int scrollRange = 0;
if (getChildCount() > 0) {
View child = getChildAt(0);
scrollRange = Math.max(0,
child.getHeight() - (getHeight() - mPaddingBottom - mPaddingTop));
}
return scrollRange;
}