Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
#1

Долго не отображается форма - Программирование Android

21.08.2014, 10:24. Просмотров 438. Ответов 4
Метки нет (Все метки)

Здравствуйте!
В приложении есть несколько Activity и Fragment'ов. В случае если соединение с Интернетом медленное, формы сначала открываются, рисуются ActionBar вверху и белый экран. Затем происходит чтение данных с сайта, заполнение ListView. Когда всё сделано, мгновенно всё отображается. Т.е. белый экран показывается несколько секунд, как будто приложение зависло. Я туда и ProgressBar вставлял, и порядок вывода компонентов менял. ProgressBar даже не показывается. Просто в фоновом потоке заполняется ListView (через AsyncTask) и затем всё сразу отображается.
Хотелось бы, чтобы пользователь видел во время работы с Интернетом хотя бы ProgressBar. Если нужен код, могу привести. Никто не сталкивался с таким поведением?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2014, 10:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Долго не отображается форма (Программирование Android):

EditText долго отображается - Программирование Android
Добрый день! Делаю для себя редактор, заодно и учусь писать приложения для Android, и столкнулся с такой проблемой, при открытии файла...

долго открывается форма - MS Access
Итоговая форма в ленточном виде из двух десятков полей, в примечании формы еще еще десяток вычисляемых полей по форме. MDB файл с данными и...

Первый раз долго открывается форма - Delphi
Доброго вечера, уважаемые. Появилась такая закавыка - не знаю как решить. Есть несколько форм с картинками в Image. На несколькох до...

.NET 4.x Не отображается форма C# - C#
Здравствуйте. Пробую создать простейшую форму, в которой выполняется постоянное (с помощью бесконечного цикла) сложение двух текстбоксов (в...

Не отображается форма - C#
При нажатии на кнопку, первая форма скрывается, а вторая не открывается. Раньше работало все хорошо, щас вот появилась такая проблема. ...

Не отображается форма - Visual Basic
Доброго! Я уже об стену головой бьюсь, а она все не соображает( Пишу прогу, создает двумерную матрицу с границами указанными...

4
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
21.08.2014, 11:46 #2
В onResume() добавьте
Java
1
myListView.setVisibility(View.GONE)
Запускайте AsyncTask в самом конце onResume(), и у него в методе onPoestExecute() сделайте видимость myListView обратно. Мне помог такой подход с выводом диалога с кучей элементов в нем.

Добавлено через 1 минуту
В onResume() добавьте
Java
1
myListView.setVisibility(View.GONE)
Запускайте AsyncTask в самом конце onResume(), и у него в методе onPoestExecute() сделайте видимость myListView обратно. Мне помог такой подход с выводом диалога с кучей элементов в нем. Ну и не забудьте прогрессбар прикрутить
1
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
21.08.2014, 13:45  [ТС] #3
Spelcrawler, спасибо вам за ответ. Попробую. Если получится, вам будет +.

Добавлено через 41 минуту
Понял свою ошибку. Прежде я составлял ListView из нескольких частей: добавлял к нему шапку (Header) и подвал (Footer). При этом рисовал ProgressBar в шапке. Соответственно, он никогда не показывался, потому что ListView отображался целиком на последней стадии рисования, где я автоматически ProgressBar убирал. Вывод: ProgressBar не надо вставлять в Header.
Решил следующим образом. Рядом с ListView поместил ProgressBar посередине экрана
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white">
 
    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="center_horizontal" />
 
    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
 
</LinearLayout>
На всякий случай, в onCreate поставил
Java
1
2
lvMain.setVisibility(View.GONE);
pb.setVisibility(View.VISIBLE);
В методе onPostExecute AsyncTask'а добавил строки:
Java
1
2
pb.setVisibility(View.GONE);
lvMain.setVisibility(View.VISIBLE);
Переопределение метода onResume в данном случае может помешать, потому что при скрытии и последующем отображении Activity может исчезнуть ListView (т.к. в нём реализовано скрытие).
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
21.08.2014, 13:56 #4
Ну лучше вообще прогресс бар выводить в диалоге, и запретить его закрытие.
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
21.08.2014, 14:19  [ТС] #5
Spelcrawler, честно говоря, ещё не пробовал так делать. Я обычно использую AlertDialog для вывода диалоговых окон (информация или вопрос). Впрочем, теперь ProgressBar работает, спасибо вам за помощь.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2014, 14:19
Привет! Вот еще темы с ответами:

Не отображается кнопочная форма - MS Access
Здравствуйте, создал кнопочную форму через диспетчер кнопочных форм, но что-то не вижу ее в виде формы или еще где-либо. Должна...

Плохо отображается форма - Delphi
У меня есть форма, на ней достаточно много элементов и форма сама добавила скролл, но вот в чем проблема, при запуске программы формы она...

ChronoForms v5 не отображается форма - Joomla
Доброго дня! Возможно кто-нибудь сталкивался, приобрел cronoforms версии 5 и установил на сайте, с 4 версией уже была практика, но...

Не отображается кнопочная форма - MS Access
Созданы все таблицы и необходимые формы. Мне нужно, чтобы при открытии программы всплывала кнопочная форма для перехода в необходимые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
21.08.2014, 14:19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru