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

时间:2018-03-22 14:01:51

标签: android android-layout scrollview

我的布局结构是

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

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

1 个答案:

答案 0 :(得分:3)

使用以下代码检测滚动视图是否位于顶部:

  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 px容差)

 if (scrollY <= 20)