Пример использования ContentLoadingProgressBar

Я просто прыгнул и нашел этот класс ContentLoadingProgressBar с сайта разработчика в android. Я искал, не мог найти никакого использования или объяснения для класса. Я перечислил несколько вопросов по классу, и было бы здорово, если бы кто-то ответил на него.

  • Как он отличается от ProgressBar?
  • Должны ли мы отображать/скрывать сам ProgressBar?
  • Стилирование ProgressBar?

https://developer.android.com/reference/android/support/v4/widget/ContentLoadingProgressBar.html

Ответы

Ответ 1

Я пробовал это:

<android.support.v4.widget.ContentLoadingProgressBar
        android:id="@+id/address_looking_up"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:visibility="visible" />

И он работает на Android 5.0. Я думаю, что этот стиль имеет значение после моего теста.

И эффект отображения этого виджета зависит от темы вашего приложения, я боюсь.

Ответ 2

Мне удалось заставить эту работу работать для меня, но она потребовала некоторых изменений в исходном коде, который я схватил из grepcode.

Я удалил переопределение onAttachedToWindow(), потому что я чувствовал, что в этом случае нет необходимости удалять обратные вызовы. Переопределенный метод вызвал вызов show() в onResume(), чтобы он не работал, потому что обратные вызовы были удалены сразу после этого.

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

Моя версия этого класса может быть найдена здесь

Мои ответы:

  • Он вообще не отображается, если hide() вызывается меньше 0,5 с после show(), и он показывает не менее 0,5 с, это предотвращает очень быстрый мерцающий материал, который вы можете увидеть с "наивными" реализациями.
  • Да
  • Я думаю, что это обычный случай стилизации ProgressBar