检测滚动视图到达顶部 - Android
Posted
技术标签:
【中文标题】检测滚动视图到达顶部 - Android【英文标题】:Detect scroll view reaching its top - Android 【发布时间】:2015-07-29 12:32:06 【问题描述】:我使用 activity_main.xml 在我的 android 应用程序中使用了 scrollview。卷轴工作完美。 但问题是我需要添加一个滚动到顶部按钮,这样如果用户开始滚动按钮应该像下面的链接一样可见..
http://webdesignerwall.com/demo/scroll-to-top/scrolltotop.html?
我需要在 Android 中执行此操作..
【问题讨论】:
你在scrollView中使用的是listview还是gridview?? 不,我在这里没有使用任何视图.. 尝试 scroll_view.smoothScrollTo(0,0);在按钮点击 谢谢@kgandroid.. 但我只需要在页面滚动时查看按钮.. 你可以使用这样的东西,***.com/questions/10713312/…。 【参考方案1】:使用以下代码检测滚动条的顶部。
final ViewTreeObserver.OnScrollChangedListener onScrollChangedListener = new
ViewTreeObserver.OnScrollChangedListener()
@Override
public void onScrollChanged()
if (scrollview.getScrollY() == 0)
swipeRefreshLayout.setEnabled(true);
else
swipeRefreshLayout.setEnabled(false);
;
scrollview.setOnTouchListener(new View.OnTouchListener()
private ViewTreeObserver observer;
@Override
public boolean onTouch(View v, MotionEvent event)
if (observer == null)
observer = scrollview.getViewTreeObserver();
observer.addOnScrollChangedListener(onScrollChangedListener);
else if (!observer.isAlive())
observer.removeOnScrollChangedListener(onScrollChangedListener);
observer = scrollview.getViewTreeObserver();
observer.addOnScrollChangedListener(onScrollChangedListener);
return false;
);
【讨论】:
请问?观察者什么时候不活着? 我认为你应该在 onTouch 方法中返回 true。顺便谢谢。【参考方案2】: scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener()
@Override
public void onScrollChanged()
if (scrollView != null)
if (scrollView.getScrollY()==0)
Toast.makeText(getContext(),"top",Toast.LENGTH_SHORT).show();
else
);
【讨论】:
以上是关于检测滚动视图到达顶部 - Android的主要内容,如果未能解决你的问题,请参考以下文章