如何在ScrollView中显示特定视图时停止滚动ScrollView?
.....
View2
----------------------------------
| |
| View3 |
| |
| |
| View4 |
| |
| | <------ It's Screen
| View5 |
| |
| |
| View6 |
| |
| |
| View7 |
| |
| |
| View8 |
| |
| |
| View9 |
----------------------------------
View10
......
如何显示View9并停止滚动的时刻。
答案 0 :(得分:0)
我从来没有这样做,但这就是我要做的。
首先,您需要检测View9何时被显示和可见。所以我会用这样的东西
Rect scrollBounds = new Rect();
scrollView.getHitRect(scrollBounds);
if (imageView.getLocalVisibleRect(scrollBounds)) {
// imageView is within the visible window
} else {
// imageView is not within the visible window
}
(来自https://stackoverflow.com/a/12428208/3187128)
尝试每X秒执行一次以测试代码。
然后,如果你想要更干净的东西,你应该使用scrollListener:
scrollView.getViewTreeObserver().addOnScrollChangedListener(new OnScrollChangedListener() {
@Override
public void onScrollChanged() {
int scrollX = rootScrollView.getScrollX(); //for horizontalScrollView
int scrollY = rootScrollView.getScrollY(); //for verticalScrollView
//DO SOMETHING WITH THE SCROLL COORDINATES
}
});
(来自https://stackoverflow.com/a/23365539/3187128)
最后一步是实现自定义滚动视图,以便能够禁用滚动:
cf https://stackoverflow.com/a/5763815/3187128
希望这会有所帮助:)