如何知道滚动视图是否在顶部?

How to know if the scrollview is on top?

我的布局结构是

<LinearLayout>
   <TabLayout/>
   <Scrollview>
    .... other widgets are placed here
   </Scrollview>
</LinearLayout>

现在的问题是我在 tablayout 上有一个图标。当滚动视图处于正常阶段时,我想隐藏它。当它向下滚动时,tablayout 中的图标应该出现,如果 scrollview 滚动到顶部并到达顶部,我想隐藏 tablayout 上图标的可见性。 怎么做。 我发现的一种方法是 如果我能以某种方式找到 scrollview 的顶点,而不是通过比较 scrollview 的位置及其 topPosition.but 来设置可见性,我不知道如何找到 scrollview 的顶点。

使用下面的代码检测滚动视图是否在顶部:

  mScrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
    @Override
    public void onScrollChanged() {
        int scrollY = mScrollView.getScrollY(); //for verticalScrollView
        if (scrollY == 0) 
            //button visible
        else 
            //button invisible
    }
});

您还可以通过更改此行来增加一些公差:

 if (scrollY == 0) 

对于这样的东西(20 像素容差)

 if (scrollY <= 20)