gpt4 book ai didi

android - 如何检查 ScrollView 是否可滚动

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:25:11 26 4
gpt4 key购买 nike

我想知道,如何检查当前的ScrollView是否可滚动?看来,ScrollView 中没有名为canScrollisScrollable 的公共(public)方法。

Scrollable :可以上下移动ScrollView内部的ViewGroup,上下移动时滚动条可见。因此,如果 ScrollView 中只有很少的行,并且它们可以容纳在单个屏幕中,则 ScrollView 是不可滚动的。

最佳答案

您可以做一些小数学运算来计算 View 的原始高度和内容的高度。如果此高度差 < 0,则 View 可滚动。

要计算原始高度,您可以使用 View.getMeasuredHeight() .因为 ScrollView 是一个 ViewGroup 并且最多有一个 child ,所以用 ViewGroup.getChildAt(0).getHeight() 得到那个 child 的高度;

使用 ViewTreeObserver获取高度,因为它会在布局/ View 改变可见性时调用,否则高度可能为 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
}
}
});

关于android - 如何检查 ScrollView 是否可滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19503573/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com