我有一个在我的布局中使用的自定义 ScrollView(扩展的 android.widget.ScrollView)。我想测量这个滚动视图内容的总高度。getHeight() 和 getMeasuredHeight() 没有给我正确的值(太高的数字)。
背景信息:我想确定用户滚动了多远。我使用 onScrollChanged 来获取 X 值,但我需要知道一个百分比,所以我需要滚动条的总高度。
非常感谢!埃里克
我有一个在我的布局中使用的自定义 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;
}