我的布局结构是
<LinearLayout>
<TabLayout/>
<Scrollview>
.... other widgets are placed here
</Scrollview>
</LinearLayout>
现在的问题是我在tablayout上有一个图标。当scrollview处于正常阶段时我想隐藏它。当它向下滚动时,tablayout中的图标应该出现,如果scrollview滚动到顶部并到达顶部,我想隐藏tablayout上图标的可见性。 怎么做。 我发现的一种方式是 如果我能够找到滚动视图的顶点,我可以通过比较scrollview的位置和它的topPosition来设置visiblity。但我不知道找到scrollview的顶点。
答案 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)