Не удается заставить панель прогресса Android отображаться как определенная по горизонтали

#android #android-progressbar

#Android #android-progressbar

Вопрос:

Что бы я ни делал, я получаю только небольшую круглую неопределенную панель прогресса. Что мне нужно, так это определяемая по горизонтали. Я попытался явно установить значение setIndeterminate (false) в коде, установив максимальное значение и начальный прогресс, предварительно установив его видимым, явно установив стиль @android:style / Widget.Панель прогресса.Горизонтальный или стиль / виджет.AppCompat.Панель прогресса.По горизонтали — ничего не помогло, полоса прокрутки оставалась неопределенным кругом. В то время как в предварительном просмотре Studio design она отображается как горизонтальный прогресс в порядке (когда становится видимой). Любая идея, пожалуйста, о том, где я могу ошибаться?

Версия Android 5.0.

Выдержка из макета:

 <ProgressBar
    android:id="@ id/loadingProgress"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:indeterminate="false"
    android:visibility="gone"
    />
  

Фрагменты кода (удалены пробелы и нерелевантный код):

     ProgressBar pbLoading;
    public void onCreate( Bundle _savedInstanceState ) {
    /* ... */
        pbLoading = findViewById( R.id.loadingProgress );
    /* ... */
    }
    public void onStartLoading() {
        pbLoading.setVisibility( ProgressBar.VISIBLE );
        pbLoading.setMax( 100 );
        pbLoading.setProgress( 0 );
    }
    public void onLoadProgress( double _progress ) {
        pbLoading.setProgress( (int)Math.round( _progress * 100 ) );
    }
    public void onDataLoaded() {
        fDataLoaded = true;
        pbLoading.setVisibility( View.GONE );
    }

  

Комментарии:

1. Вы пытались очистить-перестроить? или также аннулировать кеш и перезапустить? ваш код должен работать

2. ваш код выглядит правильно, пожалуйста, проверьте, правильно ли вы отображаете файл макета

3. @PierGiorgioMisley — Сделал недействительными кеши, затем очистил проект, затем перестроил проект — не помогло. Кроме того, это было сделано с другой рабочей станции, что привело к полному повторному развертыванию приложения из-за другого сертификата отладки. Но в любом случае спасибо за совет.

4. @PhanVanLinh — Это единственный макет в проекте, который может быть использован в этом действии. Кроме того, единственная, включающая панель прогресса.

5. Не могли бы вы опубликовать полный XML-код?

Ответ №1:

Описание проблемы не было полным. Это приложение использует старомодный подход, помещая большую часть своей логики в проект библиотеки и переопределяя отдельные аспекты в проектах приложений. Итак, оказалось, что макет был переопределен почти копией с тем же идентификатором макета в проекте приложения. Теперь проблема решена.