3

如何指定一个值,当可见时,Horizo​​ntalScrollView 将按该值滚动?

我已经尝试过 scrollTo 方法,但它只适用于后期布局上下文,我无法在特定位置启动 Horizo​​ntalScrollView。

我怎样才能做到这一点?

4

3 回答 3

2

我是这样解决的,也欢迎任何更好的解决方案:

    public void scrollWhenAvailable(final int x) {
        if (x == getScrollX())
            return;

        scrollTo(x, 0);

        postDelayed(new Runnable() {

            @Override
            public void run() {
                scrollWhenAvailable(x);
            }
        }, 10);
    }
于 2011-09-12T17:32:35.837 回答
0

无论如何,您可能都必须使用 scrollTo ,因为它完全符合您的要求,尽管您可能需要在正确的时间调用它。(在某些 onPostSomething 中,我猜)

于 2011-09-12T17:10:21.133 回答
0

我相信 postDelayed 是不必要的,一个简单的 post 就足够了,因为它会在计算完所有视图尺寸后执行,你甚至可以在 onCreate(..) 中添加它。

scrollView.post(new Runnable() {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        scrollView.setScrollX(x);
    }
});

另请注意,如果您的 SDK 级别足够高,您可能想要使用 setScrollX。

于 2012-04-23T09:06:55.707 回答