如何指定一个值,当可见时,HorizontalScrollView 将按该值滚动?
我已经尝试过 scrollTo 方法,但它只适用于后期布局上下文,我无法在特定位置启动 HorizontalScrollView。
我怎样才能做到这一点?
如何指定一个值,当可见时,HorizontalScrollView 将按该值滚动?
我已经尝试过 scrollTo 方法,但它只适用于后期布局上下文,我无法在特定位置启动 HorizontalScrollView。
我怎样才能做到这一点?
我是这样解决的,也欢迎任何更好的解决方案:
public void scrollWhenAvailable(final int x) {
if (x == getScrollX())
return;
scrollTo(x, 0);
postDelayed(new Runnable() {
@Override
public void run() {
scrollWhenAvailable(x);
}
}, 10);
}
无论如何,您可能都必须使用 scrollTo ,因为它完全符合您的要求,尽管您可能需要在正确的时间调用它。(在某些 onPostSomething 中,我猜)
我相信 postDelayed 是不必要的,一个简单的 post 就足够了,因为它会在计算完所有视图尺寸后执行,你甚至可以在 onCreate(..) 中添加它。
scrollView.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
scrollView.setScrollX(x);
}
});
另请注意,如果您的 SDK 级别足够高,您可能想要使用 setScrollX。