#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:
Описание проблемы не было полным. Это приложение использует старомодный подход, помещая большую часть своей логики в проект библиотеки и переопределяя отдельные аспекты в проектах приложений. Итак, оказалось, что макет был переопределен почти копией с тем же идентификатором макета в проекте приложения. Теперь проблема решена.