我想知道如何检查当前ScrollView
是否可滚动?似乎没有公共方法调用canScroll
或isScrollable
in ScrollView
。
Scrollable:您可以在ScrollView内上下移动ViewGroup,上下滚动时将显示滚动条。因此,如果中的行很少ScrollView
,并且它们可以容纳在单个屏幕中,ScrollView
则不可滚动。
您可以做一些数学运算来计算视图的原始高度和内容的高度。如果此高度之差小于0,则该视图可滚动。
要计算原始高度,可以使用View.getMeasuredHeight()。因为ScrollView是一个ViewGroup,并且最多有一个孩子,所以请使用ViewGroup.getChildAt(0).getHeight()获得该孩子的身高;
使用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) {
// scrollable
}
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句