В настоящее время я использую в своем приложении просмотр списка, для отображения которого может потребоваться одна секунда.
В настоящее время я использую свойство @ id / android: empty списка для создания «загружаемого» текста.
<TextView android:id="@id/android:empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0000"
android:text="Loading..."/>
Теперь я хотел бы заменить это анимированным кружком, который используется в диалоге загрузки вместо этого текста, я думаю, вы все знаете, что я имею в виду:
Редактировать: я не хочу диалог. Я хочу показать это внутри моего макета.
Большое спасибо за вашу помощь!
android
loading
android-asynctask
geometry
Waza_Be
источник
источник
Вы можете сделать это с помощью следующего XML
С этим стилем
Чтобы использовать это, вы должны скрыть свои элементы пользовательского интерфейса, установив значение видимости в GONE и всякий раз, когда данные загружаются, вызывайте
setVisibility(View.VISIBLE)
все ваши представления, чтобы восстановить их. Не забудьте позвонить,findViewById(R.id.loadingPanel).setVisiblity(View.GONE)
чтобы скрыть загрузочную анимацию.Если у вас нет события / функции загрузки, но вы просто хотите, чтобы панель загрузки исчезла через x секунд, используйте ручку, чтобы вызвать скрытие / отображение.
источник
findViewById(...).setVisibility(View.GONE)
линии при повороте экрана. Работает как шарм в одной ориентации, но есть идеи, почему это может сломаться?findViewById(R.id.loadingPanel).setVisiblity(View.GONE)
во втором упражнении? Он не может найти,view
посколькуsetContnetView()
во втором фрагменте нет метода. Спасибо!Обычно это называется индикатором неопределенного хода выполнения или диалоговым окном неопределенного хода выполнения.
Объедините это с потоком и обработчиком, чтобы получить именно то, что вы хотите. Есть несколько примеров того, как это сделать через Google или прямо здесь, на SO. Я очень рекомендую потратить время, чтобы научиться использовать эту комбинацию классов для выполнения такой задачи. Он невероятно полезен во многих типах приложений и позволит вам понять, как потоки и обработчики могут работать вместе.
Я начну с того, как это работает:
Событие загрузки запускает диалог:
Теперь поток делает работу:
Наконец, верните состояние из потока после его завершения:
источник
Если вы не хотите раздувать другой взгляд только для того, чтобы показать прогресс, сделайте следующее:
Android позаботится о видимости индикатора выполнения.
Например, в
activity_main.xml
:И в
MainActivity.java
:}
источник
Вы можете использовать этот код из примеров GitHub Firebase ..
Вам не нужно редактировать файлы макета ... просто создайте новый класс "BaseActivity"
В вашей Деятельности вы хотите использовать диалог прогресса ..
До / После функции, которая занимает время
источник
Для тех, кто разрабатывает в Котлине, есть замечательный метод, предоставленный библиотекой Anko, который делает процесс показа
ProgressDialog
легким!На основании этой ссылки:
Появится диалоговое окно Progress с отображенным% прогресса (для которого необходимо передать
init
параметр также для расчета прогресса).Существует также
indeterminateProgressDialog()
метод, который обеспечивает анимацию Spinning Circle на неопределенный срок, пока не будет отклонен:Привет на этот блог, который привел меня к этому решению.
источник