Запустите HorizontalScrollView с помощью некоторого scrollX - PullRequest
3 голосов
/ 12 сентября 2011

Как я могу указать значение, которое при отображении HorizontalScrollView будет уже прокручиваться по значению?

Я уже попробовал метод scrollTo, но он работает только в контексте пост-макета, я не могу запустить HorizontalScrollView на определенной позиции.

Как я могу это сделать?

Ответы [ 3 ]

1 голос
/ 12 сентября 2011

Я решил таким образом, любое лучшее решение также приветствуется:

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

        scrollTo(x, 0);

        postDelayed(new Runnable() {

            @Override
            public void run() {
                scrollWhenAvailable(x);
            }
        }, 10);
    }
0 голосов
/ 23 апреля 2012

Я считаю, что для postDelayed нет необходимости, достаточно простого сообщения, поскольку оно будет выполнено после того, как все размеры представления будут рассчитаны, вы даже можете добавить это в onCreate (..).

scrollView.post(new Runnable() {

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

Также обратите внимание, что setScrollX, вероятно, то, что вы хотите использовать, если ваш уровень SDK достаточно высок.

0 голосов
/ 12 сентября 2011

вам, вероятно, придется в любом случае использовать scrollTo, поскольку он делает именно то, что вы хотите, хотя вам может потребоваться вызвать его в нужное время. (в некоторых постах, наверное)

...