Обновить макет при заполнении - PullRequest
2 голосов
/ 08 июля 2010

У меня есть активность с HorizontalScrollView. Когда он открывается, я начинаю заполнять это представление (или, вернее, расположение контейнера внутри него) другими представлениями. Это делается из другого потока с помощью handler.post.

Представления добавляются в группы по 15, и когда больше нет представлений для добавления, я начинаю обновлять их новыми данными (это своего рода потоковая передача данных с сервера).

Проблема в том, что представление прокрутки пусто до тех пор, пока все представления не будут добавлены. Как только все они будут добавлены и начнут обновляться, скроллвью будет нарисовано.

Как мне обновить его в процессе добавления просмотров? Я не хочу, чтобы экран был пустым в течение 3 секунд, пока добавлены все виды.

Большое спасибо.

ОБНОВЛЕНИЕ : оказалось, что эта проблема не характерна для HorizontalScrollView, это относится к любой общей компоновке.

Ответы [ 2 ]

0 голосов
/ 19 марта 2011

Разумеется, макет отображается только после onCreate ().

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

0 голосов
/ 08 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...