Прерывает ли ProgressBar, когда он невидим, но его свойство видимости не GONE? [Дубликат]

, как упоминалось zsolt, некоторые двигатели регулярных выражений поддерживают рекурсию - конечно, обычно это те, которые используют алгоритм обратного отслеживания, поэтому он не будет особенно эффективен. пример: /(?>[^{}]*){(?>[^{}]*)(?R)*(?>[^{}]*)}/sm

21
задан greenoldman 16 October 2012 в 18:38
поделиться

3 ответа

Как и жалуюсь, нет никакого запеченного метода. Вы можете попробовать этот ProgressWheel . Если ничего другого, это должно дать вам представление о том, как его реализовать.

2
ответ дан Geobits 22 August 2018 в 03:38
поделиться
  • 1
    – greenoldman 16 October 2012 в 21:12
  • 2
    Нет проблем, но это не багги. Он делает именно то, для чего он предназначен. Круговой используется для использования, когда вы не знаете, сколько времени займет что-то. Пользовательский интерфейс Android последовательно использует штрих-тип для индикации «процентного выполнения» и «круглый» для «работы», поэтому пользователи понимают, что означает каждый из них. – Geobits 16 October 2012 в 22:17
  • 3
    Хорошо, но «работа продолжается». не требует таких свойств. Он включен или выключен. Добавление мертвых свойств - это дефект дизайна (или ошибка). – greenoldman 16 October 2012 в 22:20
5
ответ дан Fabian Almaraz 22 August 2018 в 03:38
поделиться

Так как Api 21 вы можете сделать что-то подобное: предположив, что ваш ProgressBar так не работает:

 <ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
    style="?android:attr/progressBarStyleLarge"
    android:id="@+id/progress_bar"
    android:layout_width="@dimen/item_width"
    android:layout_height="@dimen/item_height"
    android:clickable="false"
    android:indeterminate="true"
    android:indeterminateDrawable="@drawable/progress"/>

, и это progress.xml:

<shape
    android:innerRadiusRatio="3"
    android:shape="ring"
    android:thicknessRatio="8"
    android:useLevel="false" >

    <size
        android:height="76dip"
        android:width="76dip" />

    <gradient
        android:angle="0"
        android:endColor="@color/colorGrayText"
        android:startColor="@android:color/transparent"
        android:type="sweep"
        android:useLevel="false" />

</shape>

Теперь вы можете сделать это на своем ProgressBar:

 ProgressBar progressBar = (ProgressBar) findViewById(R.id.progress_bar);
        if (progressBar != null) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                RotateDrawable rotateDrawable = (RotateDrawable) progressBar.getIndeterminateDrawable();
                rotateDrawable.setToDegrees(0);
            }
        }
4
ответ дан yshahak 22 August 2018 в 03:38
поделиться
  • 1
    Спасибо за это решение, он отлично работал для меня. Как бы вы начали крутиться снова, если хотите? – markdrake 27 February 2017 в 20:18
  • 2
    Я понял, как это сделать, то, что делает этот код, - это от 0 до 0 градусов (и выглядит остановлено), поэтому для сброса анимации, вращающейся только с реверсом, нужно rotateDrawable.setToDegrees (360); и это должно сработать. Я добавил комментарий для любого, кто ищет этот ответ. – markdrake 27 February 2017 в 20:35
  • 3
    Отличный приятель! Я могу добавить его к вопросу, если все в порядке. – yshahak 28 February 2017 в 07:27
  • 4
    Кажется, что я делаю что-то не так, потому что я получаю исключение класса, когда вы делаете drawable для RotateDrawble. Я добавил прогресс progress programatically progressBar = новый ProgressBar (getContext ()); progressBar.setMax (maxDurationInMilliSec / 1000); progressBar.setProgress (0); progressBar.setIndeterminate (истина); progressBar.setIndeterminateDrawable (getContext () getDrawable (R.drawable.circle_loader).); – Roee 8 May 2017 в 11:00
  • 5
    Если вы не установите android:indeterminateDrawable в xml, как я писал в ответе, вы не можете использовать в этом коде, как это. – yshahak 8 May 2017 в 11:32
Другие вопросы по тегам:

Похожие вопросы: