Используйте ViewTreeObserver , чтобы получить высоты, потому что он будет вызываться в тот момент, когда макет / представление изменяет видимость, в противном случае высоты могут быть 0.
ScrollView scrollView = (ScrollView)findViewById(R.id...);
ViewTreeObserver observer = scrollView.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int viewHeight = scrollView.getMeasuredHeight();
int contentHeight = scrollView.getChildAt(0).getHeight();
if(viewHeight - contentHeight < 0) {
ScrollView.setVerticalScrollBarEnabled(false);
}
}
});
Это чистое решение IMO, и нет более простого способа, чем этот.